5 ms·
Hm... seems to be an opportunity. What is the best language to learn to take advantage of this market demand? Criteria: 1) manages complexity involving multipl
by 1gor 18y ago
Hm... seems to be an opportunity.
What is the best language to learn to take advantage of this market demand? Criteria: 1) manages complexity involving multiple processors 2) has utility libraries (or easy adapters can be written for existing C libraries 3) either has existing mindshare in the industry or at least is not too esoteric and can be sold there.
Any other criteria? What languages can we select?
- randombit 18y agoWhat languages can we select? Realistically (ie, if you're asking what to learn to get a job at one of these places), C++, Java, and C# because (outside of handful of places like Jane St) it seems like that is what everybody in these parts uses. (It's 'industry standard', after all [sigh])
- randombit 18y agoWhat languages can we select? Realistically (ie, if you're asking what to learn to get a job at one of these places), C++, Java, and C# because (outside of handful of places like Jane St) it seems like that is what everybody in these parts uses. (It's 'industry standard', after all [sigh])
- randombit 18y agoWhat languages can we select? Realistically (ie, if you're asking what to learn to get a job at one of these places), C++, Java, and C# because (outside of handful of places like Jane St) it seems like that is what everybody in these parts uses. (It's 'industry standard', after all [sigh])
- randombit 18y ago_What languages can we select?_ Realistically (ie, if you're asking what to learn to get a job at one of these places), C++, Java, and C# because (outside of handful of places like Jane St) it seems like that is what everybody in these parts uses. (It's 'industry standard', after all [sigh])
- ComputerGuru 18y agoIf you don't mind being restricted to mostly-Microsoft platforms, C# is the race horse you'll want to place your best on. It's multi-threading support is great (the best I've seen so far w/ regards to the balance between control & simplicity). The way its delegates (callbacks), thread pool, and invokes work is quite impressive & powerful. And, of course, C# can use any C++ library you throw at it w/ P/Invoke & a lot of marshalling.
- Tamerlin 18y agoActually, you'd be even better served looking at F#, since it has the functional programming characteristics that make functional programs more easily parallelizable than languages like Java. Of course, you can also use things like LINQ and asynchronous workflows in C# to gain a lot of the benefits... but I'm really coming to like functional programming. I wish I'd known about it when I was building parallel applictions, it would have made the software I was developing much easier to write. I also wish that I could be doing that again, rather than doing mainly maintenance work... even though I was recruited to develop parallel applications.
- dmose 18y agoI second that.. also check ms research parallel task library, very cool stuff. Here's a primer video http://channel9.msdn.com/Showpost.aspx?postid=384229 http://channel9.msdn.com/Showpost.aspx?postid=384229
- idea 18y agoMany languages focus more and more on multi-core and distributed programming. Mainstream language like Java and C# will get more tools and libraries, but other languages will likely be better. One thing i like about startups is that you can freely pick technologies that are better or faster in solving a problem. You don't have to cope with the conservatism problem. Personally i think that languages like Scala, F# and Erlang will be good to learn, depending on what platform you prefer. And Clojure also seems very cool. I know it's blasphemy around here, but Clojure is the only Lisp like language that i would like to learn.
- pmjordan 18y agoDisclosure: I'm a Clojure user. Clojure is cool, and definitely worth a look if you fancy using STM. However, it's still early days, and although single-threaded performance is reasonably close to Java's (recently, very fast numeric vector operations were added) I haven't heard much about performance of concurrent applications. I suspect it might be a while before the STM implementation comes close to the optimal case, but I think it's pointing in the right direction, promoting pure functional programming and lazy evaluation with the built-in immutable data structures. Plus you get easy access to all Java libraries. Finally, the Clojure implementation itself is pretty hackable and the mailing list is active and helpful. (I've made some minor contributions to the code myself) I've done parallel programming in C, C++, and Fortran, using OpenMP, Pthreads/Win32 threads, and even using lock-free techniques, but it's always been an incredible hassle. It'll be interesting to see if Clojure manages to gain any significant traction. Long-term though it will need to gain some kind of support for massive parallelism. Something better than MPI.