I’ve used Javascript extensively in the past – several times in fact – and each time I warned myself to never approach it again. For a reason which was quite stupid, I reluctantly wasted half a week screwing with its [insert lots of bad words here].
I hope I don’t need to check into a psychiatric institute…
Ha yeah I also hate JavaScript and, after using Ruby to set up these forums, pretty much all dynamic languages. They’re really poorly suited to large, complicated software projects not to mention their performance characteristics. Unfortunately when it comes to client side scripting JavaScript, or something that compiles to JavaScript, are pretty much your only choices. I haven’t looked at CoffeeScript, TypeScript, or Dart but those are alternatives that compile to JavaScript that are supposed to address some of its insanity.
Alchohol. Maintain a blood alcohol level of 0.129%-0.138% for the entire duration of making anything in JavaScript to shield your sanity from it’s influence. Higher alcohol levels are also effective in preventing insanity, but may result in code that doesn’t exactly do what you’d meant for it to do.
But more on point, hey, @Indicable (and anyone else) - you find a programming language that doesn’t turn you into a violent psychopath after extensive use, you let me know
My first thought was to wonder if “brainwash by torture” could be considered a programming language, then I realised that torturing and brainwashing innocent people might be almost as bad as programming in the long run.
I used to be a “C++ programmer” – who got sick of trying to understand all the shit between the (stupid) bolts that don’t fit their holes. Now I’m a C programmer with a few mostly harmless C++ conveniences: static namespace variables are cool and clean, member functions can be nice, and gotta have operator overloads (only) for vector math
I used to hate C++ much more, but this minimal C++ approach is cool with me for now.
ALSO! I don’t drink alchohol, for many reasons. (not 21, have heart condition; wouldn’t drink anyways)
Come on, Javascript isn’t as bad as it used to be. As someone who (has to) work with Javascript at my job, I can tell you that, to take a driving metaphor, it isn’t like being kicked in the nuts each time you try to brake. Now it’s only being slapped in the face when you turn left.
With a good IDE (so it tells you when you are creating a freaking global variable instead of modifying an existing one, for example) and some frameworks like, say, JQuery, to mitigate things, it can almost feel ok to code with it, as long as it is with smaller projects - I still don’t quite understand why languages that are fine with small, quick-and-dirty projects like that ended up being pressed in use for massive projects.
And often, you don’t have much of a choice anyway. I thought Dart could be a replacement, but it seems that no-one other than Google is interested in having a second scripting language for Web pages…
But then again, after working with C, C++, Assembly, Java, PHP, Javascript and a few more, I have yet to find a language I really like.
I intend to learn C# and Ada in the near future. and maybe Lua and Go at some point later. Any opinion on those?
My programming experience is very limited so far (mostly Java, if you must know), but I’ve looked at Go and tried some simple things with it. Interesting language that has a few awesome concepts, but I’m not sure if I have a project yet that I’d use it for.
Personally, I don’t find JS all that bad (I actually rather like it for doing quick & dirty stuff), but as @XeonXT_ pointed out, I have yet to find my perfect language. I’ll report back in, oh, 20 years or so whether I’ve found it.
That said, on a more serious note, it seems to me that it will always be a matter of finding the correct tool for a project, and there’ll never be a tool that can do everything perfectly. And knowing which tool to use for which task is a core part of IT, IMHO. But we can dream, right?
C# by far has the best pleasantness to power ratio of any language I’ve ever used. Tools are great, debugging is easy, perf is really good, class library is great, powerful language constructs like LINQ, and the syntax is easy to work with. I use C# as much as I can in all of my personal projects. Sadly game engines are still written in C++ for very good reasons so I spend most of my time working with C++ however we want to do our game logic in C#. These days I’m most interested in functional programming and I’m considering writing all of I:B’s backend stuff in F#.
Side comment: The people giving Javascript a small thumbs up really have no idea what they’re talking about. Sorry. It’s true.
To Keith, I don’t see why you found C# necessary at all. Programmers mistake themselves for trying to pretend now’s the time to make everyone competent of programming (Windows 8 ?) without really leveraging their own performance. The beauty in abstraction’s principle is grossly misunderstood. Onion farming/cuisine is not abstraction.
You need to learn how large software projects can look without all the rubbish modern paradigms dress them with. Programming will become much more satisfying and lucid if you force yourself to get past the inapprehensive garbage being thrown around by clueless, talentless programmers.
I know; most C programming you’ll find looks terrible, but that’s the reason why people felt C++ (and so on) was necessary. This shitty C code is created by the people who didn’t apprehend how to work with it. C isn’t explicit about programming style. Neither is C++… Neither is any language I know of, for that matter.
If you ever find C written by someone who craves beautiful, corporate, understandable code; it just makes most modern languages look quite absurd and detracting. When I started programming, I somehow developed this style independantly, but as I learned languages such as C++, programming became unpleasant and the delight behind deducing new algorithms every minute of programming was irradicated by semantic jesting.
Yeah, just for assurance: I don’t abuse C’s standard library as you may find abundant in horrid UNIX/GNU projects. That’s nearly as bad as Javascript.
I don’t think “modern paradigms” are the cause of rubbish-laden software projects.
Clueless, talentless programmers are generally the cause of crap software. Some tools make it a lot easier to write crap software, but if you know what you’re doing you should only ever be picking the tools to match your usecase.
If you’re using JavaScript to write monolithic server software, your choice of tool is the mistake, not the tool itself. You’re going to have just as much a bad time trying to write website front-ends in C.
I’m not claiming to be a programming expert, because I’m not. But I’ve been working in the industry for a few years now, alongside very experienced professionals, and it’s painfully clear when legacy decisions of convenience made at the time are causing my colleagues problems.
You don’t know what programs look like (hardly anyone does; I’m just special like that). Most popular modern paradigms are completely vain. Enjoy my assertions. I hope they are delicious.
I’ve had good experiences with Objective-C. Recently it has gotten some nice new features that make it much more pleasant to use. The two biggest one for me are “Blocks” which are basically closures with a different name, and ARC (automatic reference counting) which seems a lot like garbage collection but isn’t. My favorite library OCTotallyLazy adds some functional programming stuff that, I admit, have a bit of a learning curve, but make the language much more expressive and powerful.
Of course the downside of Obj-C is that it’s pretty much only used on Mac and iOS. It can run on Linux with GnuStep, but without Apple’s Cocoa libraries. It can also be cross-compiled to Android with Apportable, but I don’t know how mature and flexible that is. It can probably run on Windows too, but I’m sure there are considerable hurdles.