Do you love or hate any programming language? - Page 1
Forum section: electronics / general

author: Picuino
author_rank: Super Contributor
timestamp: February 09, 2022, 10:00:32 am
content: In this forum thread:https://www.eevblog.com/forum/programming/python-becomes-the-most-popular-language/the question of whether you are a fan of a language or does not make sense because it is just another tool has appeared.I love Python because with that language I have been able to make programs that I couldn't do before I discovered it existed. Also because I enjoy getting programs to work almost the first time and with relatively little effort.On the other hand I don't hate any language in particular.Do you feel hate or love for a particular language or do you think it is meaningless because they are just tools?

author: johankj
author_rank: Contributor
timestamp: February 09, 2022, 10:07:22 am
content: Whatever gets the job done

author: emece67
author_rank: Frequent Contributor
timestamp: February 09, 2022, 10:07:40 am
content: .

author: Picuino
author_rank: Super Contributor
timestamp: February 09, 2022, 10:10:43 am
content: Great meme

author: DiTBho
author_rank: Super Contributor
timestamp: February 09, 2022, 10:36:38 am
content: I *like* C, but I *don't like* how people use it in OpenSource projects.

author: bitwelder
author_rank: Super Contributor
timestamp: February 09, 2022, 10:51:26 am
content: You missed one important option in the poll: Solder

author: Picuino
author_rank: Super Contributor
timestamp: February 09, 2022, 12:49:53 pm
content: https://betterprogramming.pub/the-most-loved-hated-and-wanted-programming-languages-a04d676d155dhttps://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-wanted

author: magic
author_rank: Super Contributor
timestamp: February 09, 2022, 03:01:39 pm
content: I selected Java to turn the results into Widlar salute.Please take this into consideration in further voting.I hate Java.

author: Fredderic
author_rank: Regular Contributor
timestamp: February 09, 2022, 04:54:39 pm
content: This seems like a dubious thread at best. But, since you forgot to even include my favourite of all…!Personally, for PC stuff, IloveDbut don't get to use it enough outside of personal toys, I like and mostly usePythonday-to-day, I hate but also use alotofJavaScript.For embedded stuff, it's generallyC/C++(generallyCwithtemplates,classes, andconstexpr), though I can't say I like it, it's just always been a thing, and I'm not sure there's actually a realistic alternative.Goseems pointless, andRustis utterly overboard extreme fever-dreaming on a goal thatDdid better already — with the one downside thatDjust wasn't intended for embedded architectures (otherwise, I'd be findingmanymore uses for it).Those are the ones from the list that I care about. Of the rest… Several have their place and time where good or bad, they're simply the right tool for the job. Some are so much "tool for a job" that I'm not sure why they're considered a "programming language". And some should be allowed to crawl into a hole and die a long overdue death — no sane person actually likes them, but they were popular for a while anyhow, so people have talked themselves into liking them to save face, and/or just to try and not feel quite so miserable at their source of employment (*cough* Java/PHP *cough*).

author: golden_labels
author_rank: Super Contributor
timestamp: February 09, 2022, 06:15:47 pm
content: You missed two important options any poll should have: “I refuse to answer” and “other”. I can’t see the results without affecting them.I consciously refuse to participate. No strong feelings about any programming language and I feel those to be absurd. Not by definition, as nothing prevents existence of a language I would love or hate, but because so far all I have seen are not worth it. Even ABAP, which is at best worth raising an eyebrow so high it hits the Moon.Most of language bashing I see seems to be a mix of very limited perspectives, a lot of effort put into inventing supposed downsides, ignorance and choosing a wrong tool for the task, spiced with overconfidence and fitting the crowd. Most of strong language love seems to be a mix of giving too much weight to relatively irrelevant features, cherry-picking use cases, limited knowledge of available alternatives, turning the blind eye to various problems and considering oneself to be the ultimate definition of programming needs. In either case nothing I would like to subscribe to.I spent 13 years working professionally with a few languages and dealed with two dozen more. With the wide spectrum of tools I experienced, I can’t feel much more than either appreciation, usually mild, or noticing there are some issues, usually non-critical.There were some “wow, nice” moments. One is the underlying model of ECMAScript, though that is almost never used in practice and very rarely understood. The other is the power of C++ as the language, even despite its complexity is pushed to extremes. But I departed from that area even before writing a single commercial product in it: the reason were people. Except a small group, the wider community couldn’t decide if they want a low-level or a modern application language. In effect C++ slowly drifted towards being neither.

author: Picuino
author_rank: Super Contributor
timestamp: February 09, 2022, 06:45:54 pm
content: Quote from: golden_labels on February 09, 2022, 06:15:47 pmAdded.

author: Fredderic
author_rank: Regular Contributor
timestamp: February 10, 2022, 12:13:06 am
content: Quote from: golden_labels on February 09, 2022, 06:15:47 pmThe tragedy, the inhumanity of it all… I think someone is in dire need of a hug. (Either that, or the extraction of areallybig stick…) Do try to cheer up, or you might burst something.But, since the can has been well and truly opened…Some of that applies rather often, sure, especially in forum topics like these. And especially where people offer no justification, or the justification of "my experience is bigger than your experience" (generally involving a large helping of assumption). For me, I just figure a programming language is a tool to get a job done, not the purpose unto itself. (Unless, of course, developing it actuallyisyour job…) But while some languages go out of their way to give you a good correctness to work ratio, so you can concentrate on the task at hand — regardless of your skill level, or superiority complexes — others just, don't. That said, there is no such thing as the perfect language and every language has it's niche (a big part of why there are so many of them), and love or hate, is often determined by whether a language suits your style of thinking, and your style of thinking is often determined by the language(s) to which you are familiar — a somewhat self-reinforcing pattern, at least until you've picked up enough to a reasonable degree that they all start to blur together as merely differing dialects of each other.Those other languages however, seem to be determined to sneak every corner case they can find into your path. Yes, with due care and experience, you can still still write some good code in pretty much anything, but I always find it a bad sign when a language adds the === equality operator — it's usually a pretty good indication you're in for a loooong learning curve, just to avoid tripping over it's footguns. A language has failed, if it takes an average person years of experience to just code correctly — and a quick read of PHP package issues tends to make my point for me. ( md5('240610708') == md5('QNKCDZO'), anyone?) It's something I see all too often in PHP, JavaScript, and C/C++ — though in C++'s case, that's mostly because it's just such a large language over all, with an astounding amount of very bothersome legacy (and that stuff you said about it at the end). I will (and did) say, in C/C++'s case, I fall into the camp of people who don't have too much trouble, because we stick with our trodden path — even if mine is slightly different to many, on account of having been a little spoilt by D, before picking up C++ again.I also note that people who are arguably very good at C++ … still fall afoul of it's quirks with frightful regularity. And for most people I've come across who don't (myself included), it's because they tend to stick to the parts they know and avoid the rest. C++ is just like that. If you truly have a good grasp across the full breadth of the language, you're either a vastly above-average programmer (in which case your opinion matters little to us mere mortals), don't have a life outside of programming (youdefinitelyneed more hugs), or C++ is the only language you can claim to know terribly well — this is just the reality of C++. And its for those reasons rather than anything particularly technical, that I can't say I like it.There's also good evidence that C++ was awakened from it's long doze by my pet favourite, too. There was clearly someone whispering in C++'s ear, telling them about all the things they're lagging behind in. So if nothing else, D is inspirational!Quote from: golden_labels on February 09, 2022, 06:15:47 pmOn that note, I often say to people, JavaScript (and by extension ECMAScript) is a fantasticacademiclanguage, for languages sake — and is also significantly unfit for the purpose it finds itself most commonly being used, and should especially never have been let anywhere near the internet. The incredible amount of work that's gone into (and is still going into) making it both performent, and most importantly safe (and the frequent issues incurred attempting to achieve both at the same time), is proof enough of that. For the role to which JavaScript is generally applied, you should have to work hard to make it unsafe, not the other way around. Good or bad as it is in and of itself, judged on the purpose for which it is most often applied (and often out of necessity at that), it fails quite badly (though, still not quite the worst). Yes, youcanbe good at it, but that's true of any language, and not cause enough to count it a "good" language in my book — and it's quirks and gaping large holes annoy me frequently, so no, I don't like it.Then there's the point that you simply can not design a well rounded cohesive language, in what was it, 10 days? You're never going to get a good quality language like that, and so many of it's design choices rather clearly tell that tale. (Much the same holds true for Visual Basic, if not worse from what I recall, and I don't much like that one, either.)

author: Picuino
author_rank: Super Contributor
timestamp: February 13, 2022, 11:25:31 am
content: When you love Python too much...

author: magic
author_rank: Super Contributor
timestamp: February 13, 2022, 11:42:26 am
content: JythonIt could be a thing, maybe even a simple awk script could count leading whitespace and add those braces for you.

author: SiliconWizard
author_rank: Super Contributor
timestamp: February 13, 2022, 07:06:03 pm
content: Quote from: Picuino on February 13, 2022, 11:25:31 am

author: jmelson
author_rank: Super Contributor
timestamp: February 15, 2022, 06:26:35 pm
content: Where's the vote for languages I hate? And, Tcl/Tk is not in there. That's the one I wanted to say I hated!Jon

author: Fredderic
author_rank: Regular Contributor
timestamp: February 16, 2022, 03:42:57 pm
content: Quote from: jmelson on February 15, 2022, 06:26:35 pm*gasps* The horror! How ever could you hate TCL?!? I agree it's a little odd... but especially the latter versions have this rather endearing duality to it.On one hand, it was a very simple language in both concept and practice. One the other, especially the latter versions, were absolutely amazingly capable! Very easy to pick up, and all the things you'd expect of a scripting language. "Everything Is A String" vs. the "Everything Is An Object" that you get in most languages. And it was clean and consistent. Just had to get used to it's method of doing object instances... they were a little odd (and thus, Tk).But (at least in it's latter versions) it's also one of the first languages I know with proper real coroutines (ie. not as a cheap hack on generators), and that let you write your own constructs; the good ol' "if" keyword could literally be just a function taking arguments, some of which happened to be executable statements. "break" was just a "return" that literally "returned a break", same for "continue", and while we're at it, same for "return" itself, too. That and being able to reach back through the scope stack was some pure magic that allowed for all sorts of interesting things — particularly writing your own code constructs, rather than fighting with weird function incantations.For such a simple language, it had all the necessary tools baked right in, and often better than some newer languages I've had the displeasure of getting to know. I'm not sure I'd count it as a "good" language, but it was quite fully baked, and certainly didn't fall down on utility. It could do way more than you'd give it credit for at first glance. "Good" or otherwise, I give it bonus points for that.

author: ve7xen
author_rank: Super Contributor
timestamp: February 16, 2022, 07:16:20 pm
content: Love: C++14 and newer, Python, LuaHate: C++03 and older. I might even throw C in there, controversial but why does anyone use this anymore when they could be using nice modern C++?!Loathe: JavaScript, Perl, TCL (thanks for the reminders of those horrors lol)Curious: Go, Rust. I've spent some time poking at them but not used either in anger. Go is interesting for some of the more intensive things I currently use Python for. Rust is interesting for embedded.Voted for Python because I use it a lot and it's probably the one single thing that's improved my productivity at $DAYJOB more than anything else, and I don't really have anything major to complain about.

author: PlainName
author_rank: Super Contributor
timestamp: February 19, 2022, 01:28:57 pm
content: QuoteYou swine! I'd hoped to never again remember Tcl, then you have to dredge up all those memories

author: thinkfat
author_rank: Unknown
timestamp: February 19, 2022, 06:01:18 pm
content: I prefer not to "program" bash scripts. Other than that, I cannot find any particular language being intrinsically better than any other.

author: eugene
author_rank: Frequent Contributor
timestamp: February 19, 2022, 06:26:46 pm
content: What about Lisp and Forth? I continue to use RPN calculators even though they're getting hard to find.I define an old person as someone that feels comfortable using what they already know and uncomfortable learning new things. Having said that, I continue to feel comfortable with C, sometimes with C++ classes, but uncomfortable with all of the trimmings of full C++. I also use Python sometimes, but am uncomfortable with the lack of C style arrays.

author: Doctorandus_P
author_rank: Super Contributor
timestamp: March 23, 2022, 09:26:28 pm
content: I really dislike python.There are some great concepts in that language, but it also has some horrible down sides.First, there is that horrible dependency on whitespace.I once encountered a bug in Meld, and as it was written in python and I was interested in python back then I had a look at it.It turned out that a few spaces were missing in the last line of a for loop, and because of that, that line was not executed in the loop, but after it.Go try format a patch for that.Python is also not a programming language. it's a decent scripting language, but not fit for real programs.It is just too sloppy for that.One of the other mistakes in python is that they neglected to make a decent program entry point, but instead it just started from the beginning.And now you have to live with that horrible __main__ contraption.It took over ten years to obsolete python 2.7, and the whole affair was handled in a very uncaring way.C has (not really, but sort of) turned into C++ while maintaining compatibility. Perl also has a decent way to mix old and newer versions, but for python that was apparently too much to ask for.One of the things I like about C (and C++, etc) is that formatting is mostly independent of whitespace.If you don't like one style, just pull it through a code formatting program to tweak the formatting into something you like.I mostly grew up with C, and use some parts of C++.I once dabbled a bit with BASIC before C, but that was not a nice experience, and I quickly quit that. That was some 35 years ago though.

author: free_electron
author_rank: Super Contributor
timestamp: March 23, 2022, 10:09:19 pm
content: I hate anything that uses whitespace for formatting , requires ; to terminate statements , can't figure out when = means 'assign' and when it means 'compare' and is case sensitive . Toss in anything that looks like a bunch of symbols (apl, lisp , mumps) or uses RPN style coding (Forth)i'll make an exception for PL/M ( uses semicolons )So that basically leaves ... basic. (and pl/m on intel microcontrollers).i tried lua and don't like it ( =/== and the c-style loop syntax. just spell it out properly)

author: tszaboo
author_rank: Super Contributor
timestamp: March 23, 2022, 10:21:05 pm
content: When I started out with my career, I programmed in C and ASM (for 8 bitter PIC and AVR) and I enjoyed it. Then I spent some time with C and run into the same issues over and over again, where the main barrier for the programs is the language. And the lack of standardized higher level support for basic data types and programming methods. Yes, you can download a library, and yes, you can write your own, and every time you see someone else's implementation, you threw up in your mouth. Or every time you have a useless meeting about which variable to put first in a bitfield, because you have a colleague, who actually cares about it. I quit programming completely.So no, there isn't a programming job that would pay me enough to program C. When I want to code next to my main job, which is hardware design, I do that in python, cause it is simple, and you can do more with 4 lines of code than a year of programming in C. For example I did a machine learning project last year, which used actual sensor data, training a model for a real world application, with pytorch and then scipy later. That was fun.

author: PlainName
author_rank: Super Contributor
timestamp: March 23, 2022, 11:27:41 pm
content: QuoteIf we consider C to be the equivalent of taking some branch from a tree, turning it down, using chisels and planes and saws to make well-fitting joints, then...Quotethat would be the equivalent of nipping down Ikea for flat-packed furniture.QuoteSure, and why not. Some people like details and some want the 10,000ft view. Nothing wrong with either, but slagging off the giants whose shoulders you're standing on is a bitinfra dig.

author: Fredderic
author_rank: Regular Contributor
timestamp: March 24, 2022, 03:30:45 am
content: Quote from: dunkemhigh on March 23, 2022, 11:27:41 pmMany of us have some pretty strong opinions on what we like or dislike about languages. It really seems to come down to "why are you using it", though. Every language has it's niche, every language has something to teach us, every language has it's pros and cons, and every language has places it just really should not be (like, JavaScript should never have been allowed anywhere near the internet).Even PHP, as much as I despise that pile of … ahem. anyhow. As much as I dislike PHP, I have to admit I don't know another that is quite as easy to just throw up a page quickly and easily. And with the help of some libraries, it is of course quite capable, too — if you must. I say PHP is an objectively crap language of the highest order, second only to some of those esoterics that are intentionally designed to be horrible. But I won't deny it has it's place, it also just "fits" some people better than others, and although I hope it gets minimised into obscurity, I don't want it to actually go away completely — if nothing else, we need to remember the sins of the past, so we can have a better future.Which is why I mostly judge a language by it's footguns; if a language hands you footguns at every opportunity, it's probably not going to be pleasant (unless you've put the hard yards in to Get Gud™), you're going to spend a lot of time debugging, and you'd better be real good at testing. (Could also be because I spend rather a lot of time helping people with their programming issues.) This is PHP, JavaScript, and C/C++, in particular, that come to mind. That said, I use JavaScript and C/++ regularly, along with Python and D (regrettably, I don't get to use D much, despite being a beautiful and superbly capable language, and does almost everything most people want from Rust — as long as you're on a 32-bit system with decent RAM — it's just not very popular). None of them fit onto microcontrollers as well as C/C++, D is great for bigger systems and more intricate jobs, Python is fantastic for quickly whacking together some data processing, automation, or prototyping, and JavaScript is still really the only kid on it's block (as much as it horrifies me), with wasm only finally starting to gain ground.That's my take, anyhow. Yours WILL be different, because you have different experiences, goals, and requirements.

author: free_electron
author_rank: Super Contributor
timestamp: March 24, 2022, 02:59:50 pm
content: Quote from: dunkemhigh on March 23, 2022, 11:27:41 pmand then some people insist on doin it in a linux based system where you have to dig up iron ore to make the metal so you can make a chisel and planer ...

author: PlainName
author_rank: Super Contributor
timestamp: March 24, 2022, 05:35:06 pm
content: No accounting for taste, eh

author: twospoons
author_rank: Frequent Contributor
timestamp: March 24, 2022, 08:52:32 pm
content: My one encounter with Python was enough to put me off it for life.I like to be able to SEE the statement delimiters.

author: tszaboo
author_rank: Super Contributor
timestamp: March 24, 2022, 09:01:21 pm
content: Quote from: dunkemhigh on March 23, 2022, 11:27:41 pmYes, because the computer is a tool, that is supposed to solve my problem. Not to enslave me with tedium and boredom.If there would be a button, that said "use a program to solve my current problem" I would just press it.And, no it is not equivalent to the IKEA furniture. It is equivalent to solving a complex 3D mathematical and engineering problem with a very complex and efficient programming framework (also known as using a tool to solve a problem).

author: mariush
author_rank: Super Contributor
timestamp: March 24, 2022, 09:16:50 pm
content: I LOVED Visual Basic 6 for the speed of making a simple Windows application with a simple interface. You could literally make something in minutes.I moved on the web development where I worked a lot with PHP and Javascript - I'm not really super fond of Javascript mostly because of how loose it is with data types, I think I'd probably like Typescript much more.I'm trying to learn Go, I like its approach to multitasking (coroutines, channels, concurrency etc) and the data types built in, and the fact that you get a proper executable, there's no runtime and crap to stress about, all is contained in the executable - downside is big executables, even a simple Hello World can be 400 KB executable.The only thing that bothers me about it is lack of official GUI, can't design some interface for an application like you would do if you use Visual Studio or Free Pascal / Delphi.Sure, there's Qt/Gtk/ lots of third party gui systems but it's not the same as something officially supported and maintained.

author: eugene
author_rank: Frequent Contributor
timestamp: March 24, 2022, 09:59:17 pm
content: Quote from: mariush on March 24, 2022, 09:16:50 pmYes! In the 80's - early 90's QuickBasic came along. It was not a sophisticated programming language, but it made it easy to create GUI-ish, event driven programs. I used it a lot to interface with lab instruments (and just for fun.) That was pre-Windows - or at least before Windows became useful. Menus and input fields and dialog boxes and etc all on an 80x25 character text mode screen. With something like 8 colors to choose from!Then Windows 3.0 came along and everyone started using it. I tried to figure out how to write Win based programs using the Windows API, but good grief! I just wanted to get some programs working, not spend all of my time struggling with that API. Then MS released the first version of VisualBasic. It was as easy as QuickBasic and more powerful. I was creating useful event driven programs again, and this time with graphs and charts!For real numerics I wrote C programs with DJGPP, which was awsome because somehow it managed to break the 640k barrier that existed even in early Windows. I wrote GUI frontends in VisualBasic to control input and output of the C programs.I tried running linux back then. I did manage to get Redhat running (it came on six or eight 5.25" floppies) but my 486SX was too slow to run X, so I was stuck with text mode command prompts. Turned out I could do everything I wanted in a DOS box under Windows with DJGPP, so I gave up on linux (not the first time.) Good thing, because when I tried writing GUI programs for X I found that the API was even more obscene than the Windows API.Those were the days.(I hate VisualBasic.Net)

author: dbctronic
author_rank: Regular Contributor
timestamp: March 25, 2022, 12:27:57 am
content: Quote from: Picuino on February 13, 2022, 11:25:31 amWhoosh... that's not aberrant style, it's a thinking disorder. It obscures structure! Did white space suddenly get expensive? I could see it as a coding habit coming from someone who jumped from really bad spaghetti code assembly language to Python as their second language, as they'd be so in love with being able to see so much code in one screenful. New languages demand a little paradigm shift.

author: frmdstryr
author_rank: Contributor
timestamp: March 26, 2022, 02:51:18 pm
content: I've been using Zig and quite like it. Hate anything that starts with Java...