I love it when people down vote my replies anonymously and without giving a reason. If you hit that button, please also add a sentence explaining why you consider my answer wrong...

Career summary:

  • First line of code: Applesoft Basic on Apple][ (was it 1984?)
  • First line of machine code: 6502 (On Apple ][ around the same time as my first basic lines) "call -151" was the bang!
  • First line of PASCAL code: UCSD Pascal (on Apple ][, a little while after getting that thing)
  • First line of C-Code: Turbo C (version forgotten, was on Atari ST)
  • First line of C++ Code: Borland C++ 2.0 on a windows 2.0 i386 (Was it 1987?)
  • First line of Visual Basic code: In the great times of COM, ATL and VB5.0-VB6.0. VB the container language for C++ components!
  • First line of C# code: Cannot remember - must have been right after VB 6 era ended ;)
  • First line of Functional language code: Haskell, soon after F#, must have been around 2010.

Languages I will never touch: Perl, Python, Ruby and all those other "superlanguages".

Main interests (in programming): Portable embedded solutions. It is easy to write code with a specific environment in mind, not so easy to write code which should work on a wide variety of systems and non-systems. C got old quickly, C++ a sharp tool on the rack.

But with the rise of C++11 I felt the urge to start a quest for alternatives.

Re-Re-visiting haskell right now. Sometimes it can really produce astonishingly fast code. But the library situation is terribly fragmented. Why is not everything as good as .NET framework?! I will keep digging deeper this time. After all, it is a good high level language for code targeting not only Windows... Speaking of Windows: -fLLVM did not really work for me... in spite of doing all the web guides asked me to do :(

In contrast, Erlang looks very pragmatic and worth having a closer look at. Always liked actor model and message passing style concurrent programming.

My latest discovery in my quest to find a worthy C++ 98 successor for embedded programming with style is RUST. Great as an idea but unfortunately not yet on a mature enough level. Don't like cargo and that idea of a package manager, don't like java-style enforced directory structures, don't like the idea of "whatever you find in the internet is your standard library" as it will create problems when really trying to port code to a constrained embedded system. I would prefer a set of profiles - like Ada has and conforming "standard libraries". Why not define profiles such as "BareBone Embedded, Embedded, Kernel/Driver, Application" and allow people to tag their crates with that and some check if the claimed profile is met?