Hey /v/programming - What's your favorite language to program in and why?
39 07 Jul 2015 00:46 by u/Brozekial
As a beginner programmer, I'm interested to hear how more seasoned pros got started, so feel free to answer these too, if you've got time:
- What was your first language?
- If this wasn't your first, why'd you transition?
53 comments
30 u/Humorousone 07 Jul 2015 03:33
It's all about C# (and java, I guess, they are fairly similar) The language is strongly defined, and the debugging is top quality in visual studio.
Windows desktop applications are a joy to build and debug.
2 u/shh_coffee 07 Jul 2015 07:03
Completely agree. For work,we use mostly C# and Visual Studio. It's honestly a blessing. It really makes hammering out stuff and debugging a quicker process and not a headache.
For my own hobby stuff, I'll always be a sucker for C++ and then on rare occasions I'll go back to my roots in Qbasic and have some fun.
1 u/Virtual-Reality 07 Jul 2015 09:16
I've never tried C#, only C++, Java and Python. How does it differ to C++? I'm considering using it to make applications in Unity, which uses C#, I currently use C++ for Unreal Engine.
2 u/atomic2354 07 Jul 2015 16:20
C# is very very similar to Java syntactically. The only difference I can remember off the top of my head is how arrays are created.
0 u/Callski 07 Jul 2015 16:12
In school, one of the languages I had to learn was C#. The moment I wrote my first line I was in love. Now I'm a programmer doing Unity3D work for phones and it's absolutely my favorite language. The only time I don't use C# is when I have to write some plugin for iOS or Android. C# is 100% the way to go (or Java).
1 u/Humorousone 07 Jul 2015 18:21
I started off with python (to learn programming as a concept), then moved onto C#. I've since dabbled in C++, some java, and some web design, but I feel C# will be the language I go back to.
IT MAKES ME FEEL SO CLEAN
1 u/SpaceJesus 07 Jul 2015 21:05
Love me some C# in Visual Studio, been writing code in C# for about 8 years
1 u/zombieman 08 Jul 2015 15:58
C# so much. It is the most elegant language I have used. We learned C++ in school, and I opted to learn C# for my mobile apps programming class, and I haven't looked back. It is almost a pleasure to code in.
Not to mention LINQ, which is amazing.
11 u/sulami 07 Jul 2015 03:32
First language was C, and still one of my favourites. It is not beautiful and forces you to pay attention or it leaks memory, segfaults or just fails silently. But unbeatably fast, and so small you can learn it in a day. Also runs on everything.
I then did Python for quite a while, because if it is possible, you can do it in Python, and there are already 3+ libraries to do it on PyPi. It is just amazingly slow most of the time, which is the price of interpreted dynamic typing. Also still a reasonable choice for most projects that are not that performance-dependent, hell reddit runs on Python.
But my favourite right now is Haskell. I like compiling my code, I like static typing, I like pure functional programming. It takes a while to get used to, but it is incredibly elegant and concise, so much that it makes it a lot of fun to use.
In the end, I try to try out a new language every couple of months, just to get a feeling for how languages behave. I also really like D, more than Go or Rust (or C++), all of which I have used for side-projects in the past, but I am not sure it has a future, at least not one where I can be sure that investing time into mastering it will not be a waste.
11 u/kitanata 07 Jul 2015 04:03
All about that Python. :D
9 u/shockedtree 07 Jul 2015 03:42
My first language was Java. Really helped ease into OOP I suppose. Moved onto C++ when I took a class on Data Structures. That is when I really fell in love with programming and started playing with all sorts of languages just to see which ones I liked best. Now I am most partial to Python and C# (C# mainly because I got a job doing some .NET dev work last summer and really enjoyed it). I think I am partial to Python because I like the syntax and how quickly I can write some simple scripts and prototypes.
5 u/topical_username 07 Jul 2015 04:21
This. Python is great for on-the-fly spitballing and prototyping. I can rough out something in Python, then further develop it in PHP or C#.
2 u/shockedtree 07 Jul 2015 04:43
Exactly! It is a great language in and of itself, but personally I love it for its accessory value as well.
6 u/Adonai 07 Jul 2015 04:20
PHP. Apparently this is because I am a plebeian.
0 u/RayLomas 07 Jul 2015 18:57
PHP has a lot of issues, but I think that a lot of its reputation is due to the fact, that many PHP devs are people who transitioned from HTML and Jquery-javascript, rather than people who learned some C, Java or any other language first. Without that, it's hard to form good habits when starting with a language with permits everything (think $$var...).
5 u/SelfReferenceParadox 07 Jul 2015 03:25
I'm partial to C myself. I'm the kind of lunatic who needs to be able to 'see' the Assembly from inside the programming language, so I tend to find things like C++ too opaque.
3 u/NoGardE 07 Jul 2015 05:52
Three answers for you.
C++ is my overall favorite. It has a lot of things to be careful of, but it has the raw power to say "You. Yes you. Bit address 0x4f82a2e3. Go there." It's very flexible, mostly because it does almost nothing for you. It's a lot of fun for that.
C# is my favorite for developing tools. WinForms are a great library, really easy to use, and the language has libraries for everything. Also, as /u/Humorousone mentions, it has amazingly good debugging in VS.
Python is my favorite for one-offs and quick scripting. When I don't care about performance or reusability, it's just so damn fast to develop in.
My first language was Java. I transitioned away from it because really, fuck Java.
2 u/Jimic79 07 Jul 2015 04:14
I started with Java in college, then actually went to PHP, then Flash/Flex/Actionscript3, and now I'm mainly full stack javascript with Node and Angular. I do a lot of R&D, quick prototype stuff so longevity and support aren't a main concern of mine. If something I do is going to go into production, the product I make will usually be handed off to an engineering team as a wireframe/POC to be rebuilt in something the team is more comfortable with. I basically allow a marketing team to have these bright ideas with insane timelines and produce something for a demo or convention without impacting the engineering team's productivity.
2 u/PervertedObserver 07 Jul 2015 04:17
First Language was Java, but my favorite so far is PHP. It's super easy to learn and very powerful! Allows me to create awesome things (like a web crawler, article summarizer, search engine, etc)
2 u/zekio 07 Jul 2015 04:22
First language was C#, and i really like it because of the many uses it have, that you can easily swap between, Web Dev, console applications, WPF applications and so much more, and with it being made cross-platform now, i am only getting more fond of it, because it means I can write software for the Linux machines I have, in C#.
The language I really want to learn later on is C++ because the name is awesome pretty much, so yay!
2 u/SlimBuckman 09 Jul 2015 04:42
Ada, python and C#.
Ada is the high school crush that you miss and will likely never meet again. Everything seemed just so safe and right.
C# is the steady companion with you through thick and thin.
Python is the smart and attractive hottie with whom you'd love to road trip, but only get to talk to on smoke breaks.
Ruby is the party hookup..."don't let crazy stick its D in you" or "don't stick your D into crazy"
Java is like your uncle Benny. Let's say he's pretty good at working on cars. He's very handy, but it is just kind of exhausting when he is over the house and helping you change your oil.
C is a grandparent who is always right and a pain in the ass.
C++ is like a parent that is often right, pain in the ass and when they are wrong they are very wrong.
0 u/Brozekial [OP] 09 Jul 2015 05:11
I like how you approached this. =P
1 u/spjt 07 Jul 2015 04:30
First language was BASIC because it came with the computer and C compilers cost a lot of money. Eventually, I broke down and bought a C compiler, which was the best option for a long time. I write Java and JavaScript at work now. Java is... ok. Out of the languages I can get a job with, it's probably my favorite. Javascript blows and I try to avoid it as much as possible. If I ran the company I'd start writing everything in Scala, but I'd have to write it all myself because nobody else knows it.
Anyway, the reasons I like Scala are that it integrates so well with existing Java code, encourages but doesn't force FP, and has a pretty thorough type system. So, it has most of the advantages of languages like Haskell while maintaining the broad applicability of Java.
Right now I'm interested in learning ATS but it's pretty obscure and probably not all that useful for "real-world" stuff.
1 u/TripWire 07 Jul 2015 06:20
My first was technically C++, but my interest in game development lead me to C#. I tend to stick to C based languages (including Java) but have had to branch out to web focused languages like JavaCcript for work. I still prefer to work in C#, though sometimes I want to do more C++, if only because I'm more comfortable with them and my thought process works better in those languages.
1 u/Dreglas 07 Jul 2015 16:19
I started with python but moved to haskell because I took a massive haskell course in college. Haskell is the most frustrating and annoying language possible to learn. I truely hate haskell. But once you start thinking in haskell it is amazing. You can quickly create highly efficient code that is easy to read and modify. There is true beauty in well written haskell.
The static and strong type system is reeeaaallly anoying if you come from haskell but once you get used to it you see functions in a completely different way. Once you see functions as a map from type -> type going back to dynamic types just feels like a massive downgrade. Also recursion. In haskell you have to use it for everything. Forcing yourself to find recursive solutions to all sorts of problems makes you a great coder.
1 u/Vorthas 08 Jul 2015 20:03
First language was Pascal, since I was still learning at the time. Transitioned to PIC assembly and then C from there.
My favorite language to program in would have to be C, maybe C++ if I stick to general C-style syntax (aka not using many of the features of C++). It just looks very nice and easy to read for me. Even if more modern languages (learning Python atm) read easier, I spent so much time in C that reading it became easy for me. I actually don't really care for OOP since most of the programs I have to write are smaller in scale (usually embedded systems).
0 u/ITW 07 Jul 2015 06:25
C#/VB.NET, slowly falling in love with Typescript. Static Typing FTW.
0 u/dspadm 07 Jul 2015 06:35
My first language was C/C++, I don't really remember which it was.
Currently my favorite language to program in is Rust. The language is in its infancy, so the libraries are a bit on the light side, but the language has some really neat features. The language isn't the easiest to program in, but it is a memory safe language that doesn't use garbage collection, which is really cool.
0 u/wonkifier 07 Jul 2015 06:55
My first language was Basic, then assembly, then Pascal, then a bazillion other languages.
Right now I'm enjoying Powershell... I'm not writing major apps, I'm getting work done. It's a shell language so I can do quickie stuff without having to shift gears. But I can incorporate C# and all the .Net stuff and generate some really useful UIs quickly.
0 u/slightlycyborg 07 Jul 2015 14:49
Python for hacky scripts to do repetitive tasks and prototyping. C++ for large programs (I am currently trying to build a client side robot simulator in c++ and emscripten). PHP at work, when I am not writing hacky scripts.
0 u/humerusJoke 07 Jul 2015 16:06
I'm in no ways a seasoned pro, but I'll share:
First language was BASIC. Yeap. Good old BASIC using LibertyBASIC IDE that was shipped in a book called 'Programming for Dummies'
Learning BASIC really helped me understand the logic behind programming. I wasn't too fond of subroutines then and it was hard to do anything advanced with BASIC but the easiness of the language allowed me to practice my bug-testing skills.
After BASIC I moved on to C++. I got a copy of "C" by Dennis Ritchie and read it alongside a newer book on C++. C++ was great because it allowed me to have greater control over my code and exploit 'shortcuts' to solve problems in a quick and dirty fashion (I now realize that practice is not a really good idea when one is required to write easily readable code). Nowadays I'm sticking with Python as my projects don't require me to reinvent the wheel or mess around with lower level code in which I have a greater probability of messing things up.
0 u/gobbletictac 07 Jul 2015 16:07
Jumping on the Python train
0 u/icw 07 Jul 2015 16:55
Started with Visual Basic -> C++ -> bash/perl -> Java -> Android -> Lisp -> C -> Python Overall, I enjoy Python the most because of it's simplicity, elegance, and speed of development. Python is for ppl that want to get the job done...fast.
0 u/rdnetto 07 Jul 2015 16:58
First language was C# - it's a nice mix of power and expressiveness, but the Linux support is pretty poor atm (should hopefully change in the future), so when I switched I had to find a replacement.
My current favourite language is D - it's very much like C#, but has great cross-platform support, Python-like meta-programming, and can link against C libraries. (It's overall aim is "C++ done right"). The only weakness is the fairly small community and set of libraries available for it.
Python is quite nice, but the lack of type checking means I don't trust it for anything other than small programs. I hear Nim is much better in this regard, but I haven't tried it out yet.
0 u/LargoUsagi 07 Jul 2015 18:42
My first programming language was BASIC.
I am all about what ever language is going to solve the problem the best, and its a plus if I don't need a windows server to run it. I generally go for using Java/C#/C++ but if there is something simple that does the job I will use that too.
0 u/RayLomas 07 Jul 2015 18:50
Python. It's great when you want to see results quickly. It's also great if you go back to your code after 6 months and want to quickly figure out what is it doing. Doing stuff in a simple and explicit way is one of the main Python philosophies.
When you want to speed up your app, you can easily integrate components in C, and swap the bottleneck with a compiled module. Unless you need to run heavy computations (and GIL bites your ass) Python is a pretty universal solution.
Pascal, then C++
I didn't really transition, I just try to keep up with many languages. I'm decent in Python, PHP and Java. Mediocre in bash, C and JS. Beside that I keep trying to learn other things, right now, for example Haskell. I used to hack simple things in D, Ada, and Common Lisp, but I don't really remember much of that stuff.
0 u/jvanderb 07 Jul 2015 22:35
My first language was PHP (Actually BASIC, but that doesn't count), and I really liked it. I still like it to some extent, but more from a rapid prototyping standpoint.
I have since come to my senses, and prefer Java. I like that for the most part it is a platform independent language, and that there are a variety of IDEs available that help you code. I've never been a big fan of Visual Studio, but I have used it before. C# is very similar to Java, and I suppose if I needed to I could probably (eventually) get used to it and be as familiar with it as I am with Java.
There are a lot of people that complain about Java being slow, and that other languages are faster. That may be true, but I've never been bothered by it.
I also like that there are so many Java libraries out there that can be leveraged so you don't have to reinvent the wheel to do something common (e.g. deserializing a JSON message). It is an extremely robust platform, and I have yet to come across something that I cannot do with Java. That being said, I'm certain there are plenty of things you can't do with it, or at least not easily accomplish. I may not be an advanced enough developer to have encountered any of those situations, but for now, Java is my language of choice.
0 u/kuda 08 Jul 2015 16:51
Java, because it's not magical. I can really see what's the program trying to do and despite the weight, Java IDEs are awesome. Friends told me that I'll like C# and Visual Studio, but I just don't have the time to play with it yet.
and on the other side:
Javascript with jQuery. Because it's so flexible, it's fun, I can really mess with my approach to do everything.
0 u/mojoconcarne 08 Jul 2015 18:34
C++ all the way I have a need for speed! I also like assembler but I'm still a beginner. C# also isn't bad but I don't really care for Java I like control over what everything is doing.
0 u/shazzbot 08 Jul 2015 22:17
My favourite is Clojure! Once you get past all the ( ) then it's quite nice, very fast to get proof of concepts up and running!
Java was my first language, I learnt it at university but had an opportunity to start learning Clojure.
0 u/killbox 09 Jul 2015 01:33
java. I wanted to mod Minecraft and for that I needed java. It's my favorite language because it is my first language. edit: poll
0 u/Drevkevac 10 Jul 2015 03:18
My first language was c++. I was never very good at it until years later, and I switched to Python for my personal projects in the meantime. I still use python for everything that don't gain some benefit from another language. I switched to Python because I found it intuitive, and the string processing and data structures are great. Since most of my personal projects involve parsing or generating text in some way, the string library alone makes it worthwhile. Aside from that, I know Python pretty well, so I suppose it's a stick with what you know type situation. There may be other languages that are ostensibly better (lisp comes to mind, for some use cases), but Python does everything I need at least adequately, and usually quite well; if it doesn't, I use another language (often c++).