Languages used for game and software development on Windows, Linux, Android, iOS, Mac OS X

Started by
14 comments, last by Ravyne 11 years, 7 months ago
I do agree about your point on Haskell in terms of educating yourself since it truly does provide a new and interesting way of thinking. However I would be really quite pissed off if I had to maintain a tool at work that was written in it. There was a well known window manager (xmonad) for unix that was written in Haskell, developers just bit the bullet and rewrote one with a similar functionality in portable C. What a massive waste of time.

I think most my arguments are towards the longevity of software. Anything written using large frameworks or virtual machines simply wont be around in about 10 years. Sure for a game this might not be an issue, but tools can often still be an asset by then.

If a language brings something useful to the table and really simplifies a programming problem or provides a very elegant solution to what would have been a very awkward architecture then yes, I am all for it.

However, this mentality of developing software using platforms like .NET and Java because it is "easier" really needs to disappear if we as an industry are to progress. The C# language in particular really needs to die. It was marketed very well by Microsoft and was embraced by developers when it actually offers nothing beyond what Java had (un)provided for years. Unfortunately demonstrating how easy it is to sway the direction of technology. (if it wasn't for this, we could have had some awesome C++ libraries by now simplifying development for newcomers in a correct and innovative manner).
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
Advertisement

However, this mentality of developing software using platforms like .NET and Java because it is "easier" really needs to disappear if we as an industry are to progress. The C# language in particular really needs to die. It was marketed very well by Microsoft and was embraced by developers when it actually offers nothing beyond what Java had (un)provided for years. Unfortunately demonstrating how easy it is to sway the direction of technology. (if it wasn't for this, we could have had some awesome C++ libraries by now simplifying development for newcomers in a correct and innovative manner).

Just a side note on your ramblings. At the end of the day, all that counts is productivity and getting things done. Programming software is difficult enough as it is and there is no reason to burden the programmer with implementation details when an alternative programming language (tool!) allows him or her to focus on the actual problem at hand.

You seem to have a very skewed idea of "progress". Progress is not adding library xyz to programming language foo just to be able to achieve the same that another language features natively (either as part of the core language or its baseline runtime environment). Progress is to explore and discover means of being more productive, less error-prone and able to cope with the increasing complexity that software requires today and perhaps even more so tomorrow.

Ideology is nothing but a hindrance for true progress. A programming language is nothing but a tool. Knowing and promoting only one tool not only limits your choices on approaching a problem (both mentally and technically), and makes you inflexible when it comes to being to productive (i.e. regarding prototyping).
Innovation needs room for new ideas and living in a one-programming-language-box doesn't provide much of that. Finally, just to counter your argument from ignorance that C# has nothing to offer that Java had for years - one word: LINQ, oh - and DllImport, hm, maybe the unchecked and unsafe blocks, lambda expressions, etc. etc.

Bottom line: Learning more than one programming language is not a waste of time and statements like "language/platform xyz has to die because it hinders progress" are simply both untrue and quite offensive to the hard working, dedicated and bright people that created them. There is no silver bullet. Period. smile.png
Thanks everybody for answering, though it seems we got a bit off topic on some issues.

Back when I was 12 years old I had some programming experience with c++ for about a year and I was doing pretty good. I don't consider it difficult for a beginner as long as everything it's properly explained.Anyway it's better then some schools where they teach you pascal or something you have small chances of working on.

However I haven't done any programming, apart for some JS quick fix, for the last 4 years since I've been into design and music.
After reading your answers, I was thinking of starting with C++ and OpenGL (by the way, is OpenGl used for 2D, 3D or both?), then probably Python, might as well web develop since I occasionally design for web developers, and then I'll look into java.

It's that a good method/order of learning?
Also, what are some good resources for C++ and OpenGL?

Finally, just to counter your argument from ignorance that C# has nothing to offer that Java had for years - one word: LINQ, oh - and DllImport, hm, maybe the unchecked and unsafe blocks, lambda expressions, etc. etc.


Oh man, LINQ is probably one of the best programming improvements to happen in... well, years.

I'm mainly a C++ programmer, day job and problem domain generally demand it, but I also use a fair chunk of C#/.Net and getting a handle on LINQ just made programming that much more enjoyable and let me solve problems faster.
The async/await system which is coming is also pretty cool and the Reactive Extensions just make life that much nicer too.

Anyone who doubts C# has brought anything good to the table needs to extract their head from whatever dark area they have placed it and learn about it - some truely great tools in there.
darookie,

Ever heard of Linq++ or CLinq?

Why do you feel, developers need to waste their time to learn a new language just for a single functionality?

Perhaps if people did just bite the bullet and use the better language, then Linq++ would now be even better than the Microsoft implementation and the 99% of software written in C++ (and perhaps C) could benefit rather than a select few integrators using a short sighted and gimmicky language written by a business trying to cash in on Java's success.

. Progress is not adding library xyz to programming language foo just to be able to achieve the same that another language features natively (either as part of the core language or its baseline runtime environment).


This is certainly closer to progress than "language jumping" and not actually getting anything done. I also see Microsoft's C++/CX and C++/CLI extensions much closer to progress than yet another frigging' language like C#.

C# is a waste of time and anyone who doesn't see this will inevitably be wasting other people's time.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

darookie,

Ever heard of Linq++ or CLinq?

Why do you feel, developers need to waste their time to learn a new language just for a single functionality?

Perhaps if people did just bite the bullet and use the better language, then Linq++ would now be even better than the Microsoft implementation and the 99% of software written in C++ (and perhaps C) could benefit rather than a select few integrators using a short sighted and gimmicky language written by a business trying to cash in on Java's success.

[quote name='darookie' timestamp='1347111567' post='4977970']. Progress is not adding library xyz to programming language foo just to be able to achieve the same that another language features natively (either as part of the core language or its baseline runtime environment).


This is certainly closer to progress than "language jumping" and not actually getting anything done. I also see Microsoft's C++/CX and C++/CLI extensions much closer to progress than yet another frigging' language like C#.

C# is a waste of time and anyone who doesn't see this will inevitably be wasting other people's time.
[/quote]


I thought I sensed a strong sense of bias in your first post, but I tried to give you the benefit of the doubt, however, clearly my gut was right.

You're spouting quite a bit of FUD here -- Firstly, Microsoft designed and is the driving force behind advancements made in C#, but the language itself is no longer controlled by MS, and IIRC, they've also agreed to not assert any patents they hold that might be required to implement it. Also, it's a language, and quite a good one, not some marketing ploy like you seem to assert -- manufactured by marketeers alone like some kind of boy band.

C++ might be the "Better language" for you or I, but I don't presume to know that this is the case for everyone and neither should you. Most people out there doing their jobs just want to get things done, and don't need or want to get bogged down in the details of memory management or eccentricities of what constitutes undefined or implementation-defined behavior. Plenty of people don't need the unchecked power that C and C++ can provide, and I daresay that more "average" programmers benefit from a little extra hand-holding than not -- A kid fresh out of University of Rural America with his CS degree writing C++ is a scary thing, especially since he was more than likely trained in Java.

Programming as a whole would not be better served by promoting the type of C++ mono-culture you seem to advocate here, nor did C# or any other of the hundreds of languages that exist today slow down C++. C++ is the only one who slowed down C++, and its convoluted syntax is the primary culprit, not just in extending the language, but in supporting tools that make development easier, like intellisense, code-refactoring, and code-exploration. And you can say all you'd like that feature-from-language-X has or could have a similar library for C++, but at the end of the day, C++ folks might never have thought to have such a library, or to build it in such a way, or get to enjoy the tight integration with the language and other tooling around .Net or some of the other runtimes out there. If I can coin a phrase "Inspiration and evolution are two sides of the same coin."

Different strokes for different folks. Don't pretend that you know any better.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement