Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'd go for C++, if you're really good at C++, picking up Java, C# & ObjC will be a matter of a couple days each. That and Python.


I'm sorry, but a language for which a fully-compliant compiler takes a decade to write is horribly broken.

(Computer) languages should not inspire "puzzle books". Too often I'll see colleagues scratching their heads wondering why a piece of code works a certain way, or why something doesn't work the way it's supposed to.

Languages are a tool to get things done. The more time you spend lost in the entrails of a language, the more you're wasting your time.


I don't think C++ would give you a good grounding for a language like C#; too much emphasis on manual memory allocation, and insufficient exposure to higher-level abstractions, like lambdas and monads (as IEnumerable<T> effectively is).


It all depends on the type of C++ you are writing. It is such a vast language that usage patterns can range anywhere from C90 plus declare-where-used and single line comments to something that in practice isn't a whole lot different than C#. Modern C# includes RAII-like idioms with using statements and IDisposable replacing C++'s destructors, and C++ manages to fake garbage collection using smart pointers.

It's not an ideal basis but there are worse languages to learn before coming to C#; it might even be easier for C++ programmers to move to C# and begin working comfortably than Java programmers.


Maybe. Manual memory allocation is no longer a best practice for "normal" C++ projects, and I'm not sure how much easier C#'s syntax for higher-level abstractions is relative to template metaprogramming. Both are convoluted, obviously.


Are smart pointers the accepted alternative or are you talking about real garbage collection?


In what way are lambdas convoluted?


C++0x, which already has a few partial implementations (including VS2010's), does have lambdas.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: