The official unpopular opinions thread
-
@error said in The official unpopular opinions thread:
I unironically like Javascript.
At some point in the past I have thought "JavaScript is pretty great. I wouldn't mind seeing it used everywhere".
-
I hate Resharper.
And everything from Atlassian.
-
@error said in The official unpopular opinions thread:
I unironically like Javascript.
Get out!
@Zecc said in The official unpopular opinions thread:
@error said in The official unpopular opinions thread:
I unironically like Javascript.
At some point in the past I have thought "JavaScript is pretty great. I wouldn't mind seeing it used everywhere".
Welcome back into the fold.
-
@Gąska said in The official unpopular opinions thread:
@pie_flavor the first programming language is special for every programmer. It's what initially shapes their mind, and they absorb all its idiosyncrasies as normal. All later languages are then subconsciously compared to their first, and that makes flaws in all of them much more apparent. JS's prototype inheritance model might be cool (not to be confused with good), but all the glaring defects in the language overall grossly outweigh any benefits it might give, and it's very obvious right from the beginning - that is, unless it's your first language. Same as C++ and RAII - it used to be about the only language that has done it right, but it got so many other things wrong that it hardly matters. Even though personally, I don't really find it all that bad - but as you might've guessed, it's because it was my first language. If this wasn't the case, I'd stay as far away from it as I could to preserve any remnants of sanity I'd still have (like I do now with JS or Perl).
My first language was RPGIV. I've done my best to avoid it my entire, abet short, career and succeed thus far. Although I do sometimes see contracting roles with a day rate of £1000 and I question that decision.
-
@Zecc said in The official unpopular opinions thread:
@error said in The official unpopular opinions thread:
I unironically like Javascript.
At some point in the past I have thought "JavaScript is pretty great. I wouldn't mind seeing it used everywhere".
Worst. Jinn. Ever.
-
@Zecc said in The official unpopular opinions thread:
@error said in The official unpopular opinions thread:
I unironically like Javascript.
At some point in the past I have thought "JavaScript is pretty great. I wouldn't mind seeing it used everywhere".
-
@pie_flavor said in The official unpopular opinions thread:
@Gąska my first language was TRS-80 BASIC and my first 'real' language was Java and I hate both of them thoroughly and most of their features and use vastly superior languages wherever possible.
TI-BASIC was my starting point. Then I tried to learn Perl (that didn't go well because I was missing so many fundamentals about things like functions or classes, but I was able to make toy applications that had a ton of copy-pasted code). Then I got to college and it was all Java.
I have not touched any of those three languages since, and I'm glad.
-
@Gąska said in The official unpopular opinions thread:
the first programming language is special for every programmer.
(first professionally used language)
PL/1 back in 1987. Haven't used it since 1988. I don't even remember if it was good/bad. Of course, I was fresh out of undergrad, so I wouldn't know good/bad from a hole in the ground...
-
@Gąska said in The official unpopular opinions thread:
@pie_flavor of course, as I should've mentioned, what I said might not apply for people born on Earth-73.
More seriously - I didn't mean that everyone loves their first language unconditionally (I actually hate C++ quite a lot!) Mostly, I meant that if someone genuinely likes JS despite all its flaws... Well, JS has way too many flaws in important areas for this to ever happen naturally. Pretty much the only way not to be strongly repulsed by them is not to know that those things are bad and that they could've been done much better.
Fuck off blakey...people can like different things than you do.
-
@boomzilla yeah, but JS is pure masochism. I mean, I know there are people who like that sort of stuff...
-
@Gąska said in The official unpopular opinions thread:
JS is pure masochism
I guess that explains that.
-
@error ....right, of course.
-
@boomzilla JS is special. We can talk about shit like
this
and semicolon insertion and jQuery all day, but the part of it that makes it actually suck is that accessing an undefined variable isn't an error but instead silently returnsundefined
. It's impossible to write sensible code in JS without wrapping literally every dot-access in anif
- hell, I've got three 'cannot read property of undefined' exceptions in the log from this site right now. No other language does this. It's the billion-dollar mistake, except reaching every single aspect of the language.
-
@boomzilla said in The official unpopular opinions thread:
people can like different things than you do.
-
@pie_flavor said in The official unpopular opinions thread:
accessing an undefined variable isn't an error but instead silently returns undefined.
Are you not using strict mode?
It's the billion-dollar mistake, except reaching every single aspect of the language.
Unless you type
'use strict';
Or use ES modules (which you absolutely should), in which case it's implicit.
Are you writing ES3 for IE8? They solved this problem literally a decade ago.
-
@error AFAIK @pie_flavor was talking about accessing unset object properties, not (just) variables.
This thread half makes me want to make a
Proxy
-fied object that @error s on accessing unset properties.
-
@coderpatsy said in The official unpopular opinions thread:
unset object properties, not (just) variables.
Not my fault he used the wrong terminology..
TypeScript has you covered here, or JSDoc with VS Code.
-
@DogsB said in The official unpopular opinions thread:
My first language was RPGIV.
Are any RPGs Turing complete?
-
@HardwareGeek I don't know if it's been rigorously proven, but my conjecture is that any computing problem can be solved with the application of a rocket propelled grenade
-
@hungrier That tends to solve the halting problem, too. Any arbitrary program running on any arbitrary computer will halt if one of the inputs is an RPG.
-
@pie_flavor said in The official unpopular opinions thread:
@boomzilla JS is special. We can talk about shit like
this
and semicolon insertion and jQuery all day, but the part of it that makes it actually suck is that accessing an undefined variable isn't an error but instead silently returnsundefined
. It's impossible to write sensible code in JS without wrapping literally every dot-access in anif
- hell, I've got three 'cannot read property of undefined' exceptions in the log from this site right now. No other language does this. It's the billion-dollar mistake, except reaching every single aspect of the language.I agree with all of that. But it's still kinda fun!
It's like a vacation away from serious languages.
-
@boomzilla said in The official unpopular opinions thread:
@pie_flavor said in The official unpopular opinions thread:
@boomzilla JS is special. We can talk about shit like
this
and semicolon insertion and jQuery all day, but the part of it that makes it actually suck is that accessing an undefined variable isn't an error but instead silently returnsundefined
. It's impossible to write sensible code in JS without wrapping literally every dot-access in anif
- hell, I've got three 'cannot read property of undefined' exceptions in the log from this site right now. No other language does this. It's the billion-dollar mistake, except reaching every single aspect of the language.I agree with all of that. But it's still kinda fun!
In DF sense.
-
piano and violin don't sound good together
-
@Gąska said in The official unpopular opinions thread:
@boomzilla said in The official unpopular opinions thread:
@pie_flavor said in The official unpopular opinions thread:
@boomzilla JS is special. We can talk about shit like
this
and semicolon insertion and jQuery all day, but the part of it that makes it actually suck is that accessing an undefined variable isn't an error but instead silently returnsundefined
. It's impossible to write sensible code in JS without wrapping literally every dot-access in anif
- hell, I've got three 'cannot read property of undefined' exceptions in the log from this site right now. No other language does this. It's the billion-dollar mistake, except reaching every single aspect of the language.I agree with all of that. But it's still kinda fun!
In DF sense.
Nah. It's like taking your shoes off in the office. Not really appropriate, but it feels good to get your toes free for a bit.
-
@tho Welcome, lurker!
-
@pie_flavor thanks :)
-
@HardwareGeek said in The official unpopular opinions thread:
@DogsB said in The official unpopular opinions thread:
My first language was RPGIV.
Are any RPGs Turing complete?
I would hope not. It might gain traction again.
-
I liked Visual Basic 6; it was simple and friendly, and you you could spaf out a program with a fancy GUI as quick as anything.
(I was coming from Object Pascal, which I hated, though)
-
@anonymous234 said in The official unpopular opinions thread:
What we need is a thing that logs everything internally, and can stop execution at a certain point and let you play back and review every line of code executed.
Are you looking for functional reactive programming?
(Yeah, I know, the FP thread is )
-
@Cursorkeys
I think we found swampie's alt account
-
@Cursorkeys said in The official unpopular opinions thread:
I liked Visual Basic 6; it was simple and friendly, and you you could spaf out a program with a fancy GUI as quick as anything.
Same. VB was my first programming language (other than some really old QBasic stuff). The drag-and-drop form designer was a killer app at the time.
-
I don't care what anyone says, 'Polar Express' is creepy as fuck. -shudders-
-
@heterodox said in The official unpopular opinions thread:
@Cursorkeys said in The official unpopular opinions thread:
I liked Visual Basic 6; it was simple and friendly, and you you could spaf out a program with a fancy GUI as quick as anything.
Same. VB was my first programming language (other than some really old QBasic stuff). The drag-and-drop form designer was a killer app at the time.
Same here, for the same reasons. Before I learned C, I used to write code using VB for the GUI part, and assembly (as DLLs, and sometime VxDs) for the heavy lifting part.
Don't worry, it was back when I was a student ; nobody else had to endure my weird combination of languages. It worked fine, though.
-
And while we're on the subject of unpopular opinions on programming languages...
I think that C is a bad language for doing embedded development. And I say that as someone whose job includes developing embedded code in C, because it's an industry standard.
It has no safety, but that's not the worst part. Not only does it explicitly allow undefined behavior, even seemingly trivial code can trigger it. And since there no restrictions on what "undefined behavior" is, even a minor mistake is enough for the compiler to generate code that's broken in all kinds of perverse ways, including in parts unrelated to where the bug lies.
And you can't rely on your knowledge of the underlying platform, because even stuff that's guaranteed by the hardware may be considered undefined behavior by the compiler, which means ugly workarounds have to be used no matter what.
Ironically, I find that the MISRA C spec (basically, rules to make C safer for critical applications) is a great proof that C should not be considered suitable for such a purpose: it shows how full of pitfalls the language is.
In some ways, even assembly could be considered a saner choice than C: it's tedious to read and to write, but straightforward enough to make checking for correctness easier, and simple enough to convert into machine code to make bugs in the toolchain a lot less likely.
(cue someone posting about Rust in 3... 2... 1...)
-
@Zerosquare said in The official unpopular opinions thread:
Before I learned C, I used to write code using VB for the GUI part, and assembly (as DLLs, and sometime VxDs) for the heavy lifting part.
Same. That was the nice thing about VB: It wasn't a walled garden. If you wanted something more complex than the framework gave you, there were multiple ways to achieve it, the usual being what's now called P/Invoke in VB.NET; I don't remember what it was called then.
-
@Zerosquare said in The official unpopular opinions thread:
In some ways, even assembly could be considered a saner choice than C: it's tedious to read and to write, but straightforward enough to make checking for correctness easier, and simple enough to convert into machine code to make bugs in the toolchain a lot less likely.
We have mixed assembly and C in our code, and assembly isn't just tedious to write, but downright difficult. The code density is lower and there are far fewer options for visual cues to aid understanding. And all that's before you consider the “fun” you get with interactions between bits and pieces (memory hazards, etc); there's whole levels of nasty in assembler that aren't there in higher-level languages.
OK, a few things that make a difference on this project. We've always been C99 (specifically including GNU extensions) and we don't support any of the standard library. A few things like
memcpy()
andmemset()
would be used… except they're too damn big (I don't know why they're so bloated, but we're short of space so minor chiselling is worthwhile; for some uses, our custom replacements are much faster too). There's no conventional I/O at all.
-
You can simulate high-level languages constructs in assembly (to some extent) using macros. And good comments help a lot.
I'm not saying assembly is great for embedded development ; some languages would be definitely better. I just wish the de-facto standard wasn't C. It looks nicer that it actually is.
-
I like JavaScript.
...okay, that's not quite right. I like TypeScript. With a linter and an IDE that points out my dumber mistakes, ES6-like features, fat-arrow notation (which mostly removes the need for "this"), and proper classes (that are so similar to regular inheritance that I have a hard time pointing out exactly what's different about prototype inheritance)...
I like about 25% of JavaScript.
-
@PotatoEngineer said in [The official unpopular opinions thread]
I like about 25% of JavaScript.
Your percentage is a bit off, but you have the right idea.
-
@Zerosquare said in The official unpopular opinions thread:
I think that C is a bad language for doing embedded development. And I say that as someone whose job includes developing embedded code in C, because it's an industry standard.
Is that really an unpopular opinion? C is horrible for anything.
-
For desktop apps, it's a pretty common opinion, but plenty of other languages are popular.
For embedded, especially in very constrained systems... C is still the heavyweight player.
-
@Zerosquare but AFAIK mostly for the same reason why JS is popular in browsers: because nothing else is supported.
-
Indeed. Almost all embedded architectures have at least a C compiler available. It may suck, but it usually exists.
Support for other languages is much less guaranteed.
-
@PotatoEngineer said in The official unpopular opinions thread:
I like JavaScript.
...okay, that's not quite right. I like TypeScript. With a linter and an IDE that points out my dumber mistakes,
TypeScript is great.
ES6-like features, fat-arrow notation (which mostly removes the need for "this"), and proper classes
All of those things are in JavaScript.
-
@Zerosquare The hardware and performance requirements of the thing I was working could do fine with C++ or even some embedded JavaScript but the manufacturer only supported that nonstandard C thing. That was a really horrible experience.
-
@sockpuppet7 said in The official unpopular opinions thread:
the manufacturer only supported that nonstandard C thing. That was a really horrible experience, I hope they never move me to that product again.
I'm curious, which one was it?
-
@Zerosquare Verifone and Ingenico payment terminals
-
Ah, electronic payment stuff. I've never done any, but I heard that they have their own kinds of .
-
@Zerosquare said in The official unpopular opinions thread:
Support for other languages is much less guaranteed.
Many languages can't operate in that realm; they need too much of a runtime lib. Of those that can, C and occasionally C++ are the players because that's what's already there. The manufacturers of the hardware have given you interface definitions in C, stuff like the base addresses of all the memory mapped hardware devices, and replicating that for another language is a chunk of nasty busywork. For some of our stuff, C++ would be a definite help but we don't do that much greenfield stuff and we already know how to make C do what we want.
-