Comments by "Winnetou17" (@Winnetou17) on "Continuous Delivery"
channel.
-
I used to like JavaScript (dynamic language, first order functions, prototype based OOP) but I didn't like all the frameworks that emerged from it. jQuery is truly a definition of good library design, as evidenced by its staying power with so little changes. While things like Angular have to keep saying "yeah, the old version was bad, but this new one is good". Anyway, bad comparsion, framework vs library.
What I still don't understand, probably because I don't program much in JS nowadays, is why people didn't profit from the awesome prototypical inheritance but insisted into getting back to the classes system. Yeah, it can be done (because prototype based OOP is awesome) but it's like "nah, these round wheels are too dangerous, we must get back to square wheels".
5
-
@sulai9689 Here is a list:
3:15 There was encapsulation before OOP, including in C
5:28 "before OO there were no maps or lists or sets" - this is 100% wrong from every possible angle. First no OO is required for that, check the article "Dataless Programming" by R. M. Bazler of RAND Corp from 1967. Second, a very trivial example, linked lists exist from 1956. LISP, one of the oldest high level programming language, extensively uses lists. Since 1958. And in general, there have always been abstractions in programming and the more complex languages become, the more abstractions they acquire, this has nothing to do with OOP at all
6:05 polymorphism is not an OOP idea either. Ad-hoc polymorphism if I'm not mistaken, first appeared in ALGOL 68. Very not OOP. What he refers more specifically is subtyping polymorphism, I assume specifically against interfaces. What he says about printers is extremely well shown to work without OOP in open, read and write syscalls. You have no idea, and do not have to bother at all knowing what exactly you are writing to. It's having an API what matters to allow polymorphism. Getting back to interfaces, the ML language has many of these (polymorphism, encapsulation, modularity) also without OOP, since 1973. You could say that this specific polymorphism - interface subtype - was created and popularized by OOP, but overall, he still presented it in a very misleading manner.
8:45 overwhelming majority of drivers are written in C. And not just in Linux.
2
-
Java is so verbose, that even when I was more of a text-editor fanboy, I would've used an IDE for Java with no thought. Making so many files, and writing so much boilerplate code by hand would've pushed me to jump off of a cliff or something.
Now, I mainly code in PHP. When I was on simpler projects years ago, things like Wordpress, using a text editor was actually ok. I don't like autocomplete, so using an IDE wouldn't've added much. However, nowadays, when I work on projects that are OOP and there's literally tens of thousands of files (of course, from the framework & other 3rd party modules), I would feel just as overwhelmed as I said for Java. Because now, when I follow some logic, I have to open up to 50 (yes, fifty) files. It would be insane to do that in a text editor, unless it would work exactly the same as in an IDE.
2
-
1
-
1
-
1
-
1
-
1
-
@lprimak Unfortunately or not, that's not simply a take, that's the definition of high vs low level languages, even though, indeed, in today's world a low level language is pretty narrow, and there's quite the variance between the high level languages. Because of this, people started using terms like "higher" and "lower" level languages, while still talking about high level languages. And at some point some people simply started to call them "high" or "low" instead of "higher" and "lower".
Thing is, a high level language allows abstractions. With good enough libraries, you could have quite some easy time in C too, only calling simple functions.
There's also the term of "medium level" language specifically for C class of programs, where it is a high level language, but where you do have access to pointers and high degree of control in general.
Like alansaunders1828 said above, we already have multiple levels, not just two, neither 3 and to actually be useful, I'd say that a new definition need to arise, maybe something like that the levels of autonomy of cars. So a level 1 language is assembler aka low level - full access, most likely not portable and all the way up to a level 5 or 10 which would be probably something interpreted, garbage collected and so on.
1