29 ms·
I try to keep my comments nice on HN but in this case I can't, I've met this kind of person many times now and I just can't hold back. The author is lazy, and
by kichimi 6y ago
I try to keep my comments nice on HN but in this case I can't, I've met this kind of person many times now and I just can't hold back.
The author is lazy, and is channeling his energy into complaining rather than learning. He believes he is by default an expert on the 'user friendliness' of programming.
His comments don't really make much sense, and come across as whining that should be ignored.
"People hate command lines - not only do they LOOK scary, they give weird unhelpful error messages and… you have to type everything. Ugh. "
You have to type to write programs. I truly believe that this person has had a conversation with friends about how programs should write themselves by you just telling them vaguely what problem you'd like to solve. And unhelpful error messages? You know what would be an unhelpful error message? 'ls' outputting a commandline tutorial every time I mistype a directory name so that people like this can have his hand held and continue to be intellectually lazy.
I have no patience any more for lazy know it alls in regards to programming.
- user-the-name 6y agoThe author is 100% correct on everything. Programming is massively over-complicated for no useful reason. Programmers tend to get very proud of the completely pointless knowledge they have to acquire to use the pointlessly complicated tools they do, and they confuse that with being clever. It's not. It's really not. Nothing has to be this esoteric and annoying. We've just chosen to keep things like this because we think it makes us clever. Programming can and should be much, much more user friendly than it is now.
- DanielKehoe 6y agoIt's time to refactor the last ten years of professional web development.
- user-the-name 6y agoIt's time top refactor the last THIRTY years of absolute garbage development in general.
- lionkor 6y agoWhat programming projects have you completed in the last 10 years?
- user-the-name 6y agoToo many to list. Currently working as a senior programmer for the user-facing client for a company worth hundreds of millions, with an app store rating of 4.9. Previously, I've developed open source software that got 5000-10000 downloads a day, and a few private commercial projects that pulled in a few thousand dollars a month. A recent open source project on github has 8k stars. Is that enough credentials to listen to what I say?
- lionkor 6y agoIt's enough credentials to make your criticisms worth thinking about. It's fascinating how, in a few years, I got so familiar with the commandline and never felt like it was too complicated (although I do almost everything through it), both at work and privately. Maybe, with a skillset like that, you could just make the things better that you dont like, instead of what looks like "just complaining".
- user-the-name 6y agoI have in the past implemented my own shell to work around some of the limitations the usual one had. But today, I feel no real motivation to do so, because I know that if I tried to release this, the main response I would get would essentially be complaints that I shouldn't be changing things. I don't think any attempt to improve things would be accepted, because people refuse to believe there is anything wrong with what we have.
- robertlagrant 6y agoHow did you decide what program runs when a user types a command in a directory, without using the concept of a path?
- kichimi 6y agoPlease explain how the command-line is pointless. If investing time into learning the ins and outs of a complicated system does not make you clever then please explain to me what does make someone clever?
- oefrha 6y ago> please explain to me what does make someone clever? Dismissing other people’s work as awful, pointless on the Internet. Well, at least it makes you look clever, in certain eyes.
- user-the-name 6y ago"The command line" is not pointless. The current popular implementation of a command line, is, however, pointlessly complicated and esoteric for no real gain. It could be improved massively.
- kichimi 6y agoWhich one? Please explain how it's pointless. What is esoteric about typing which program you want to run?
- user-the-name 6y agoStandard unix shells. They contain a massive amount of complexity and obfuscation that only exists because that's how it was always done and nobody dares change it any longer.
- MaxBarraclough 6y agoLike what? Please be specific or we can't have a meaningful discussion. I use Bash a fair amount and I don't consider it overly complicated as a shell. There are some rough edges in Unix, like handling spaces in directories, and I'm no fan of Bash as a scripting language, but I wouldn't say the basic model of the Unix command-line interface is overly complicated.
- pjc50 6y agoPlease demonstrate your simple alternative and its acceptance testing on real users.
- user-the-name 6y agoWhy? You are allowed to point out failings without having a perfect solution at hand.
- kichimi 6y agoHe's asking you to back up your assertations. If all you have is an easily produced vague thought then it can be dismissed just as easily.
- user-the-name 6y agohttps://news.ycombinator.com/item?id=25789651 https://news.ycombinator.com/item?id=25789651
- ccmcarey 6y agoIt's just kind of .. pathetic, to make statements like: > Programming is massively over-complicated for no useful reason And then offer absolutely no justification for why this is the case, and to shrug off any questions as to what obvious improvements could be made. You offer no useful contributions to the conversation by doing this. None.
- user-the-name 6y agoWell, here's an example: You can develop a fully featured, world-class iOS app, and distribute it, without even touching a command line. Nothing in the process would get easier by touching a command line. You just don't need it. There is a fully-featured environment that provides all the tooling you need without it.
- d3ckard 6y ago
- ryankrage77 6y agoI think both points are true. You can get low-level and write assembly on a 6505. Or you can write python programs in Python. Or you can break out a terminal & node.js and a browser and build an entire website. But you'll need to put in different amounts of time, effort, and research to achieve these different things.
- cdu1 6y ago"Programming can and should be much, much more user friendly than it is now." While there's no doubt there are some libraries/tools/systems which are poorly designed, perceived complexity may often be due to the requirement to support a wide variety of new and legacy systems or to support layers of the tech stack that many people are not even aware of. "We've just chosen to keep things like this because we think it makes us clever." If I could make my job any simpler I would jump at the opportunity. Personally I often marvel at how relatively quick and easy it is to quickly develop useful programs. Perhaps if you try implementing some of these more simple tools the reasons for the underlying complexity will reveal themselves.
- humanrebar 6y agoAgreed. Two of the pieces of irreducible complexity that beginners have problems understanding (or even appreciating!) are change management and software delivery. If a newcomer created a simple but novel program and it turned out to be successful, two sure-to-follow requirements are: - Now someone else wants to access and suggest changes to your project. In parallel. Without breaking anything. - Now the software needs to be shared with others outside of the development environment. Both create a surprising amount of complexity and require fourth- and fifth-dimensional thinking. You have to learn a version control system (probably)! You have to learn how to perform a code review! You have to do learn software design and hopefully documentation. You have to learn and leverage at least one packaging ecosystem for the development approach that was chosen. Hopefully you chose one with an accessible packaging ecosystem, assuming that exists!
- user-the-name 6y agoNone of that complexity, as it exists today, is particularly irreducible.
- fisensee 6y agoWhile I understand and recognize the frustration with programming today, I wonder if comments like these have any sort of factual basis to them. What exactly is over-complicated for no useful reason? And what are the ways to fix this? I haven't looked at every "coding for non-coders" app, but all I've seen fail in offering the same functionality as coding in itself does. How would the ideal way to programm look like where you have the same freedoms you have with todays languages, tools, frameworks, etc. while still being easy and intuitive to use?
- m1gu3l 6y agoRemember that for all the time spent trying to figure out these philosophical conundrums in our trade tech debt is still piling up and someone else is out there writing actual code/working... these are nice things to think about but don’t get hung up on them. Lots of this is subjective stuff that has no answer and the code isn’t going to write itself (not yet).
- collyw 6y agoI am not sure how true this is. There have been numerous attempts at visual programming and they have generally turned out to be crap. Because syntax is actually a relativity small part of the problem.
- user-the-name 6y agoIt has nothing to do with visual programming. Which, by the way, is in massive, wide-scale use today. Game engines tend to use it, audio processing software uses it, and scientific control software also use them. But no, what I am talking about is all the tooling around the programming, which in turn relies on the massively archaic Unix command line.
- rowanG077 6y agoVisual programming can work in specific domains. But I've never seen it used in large general purpose systems.
- user-the-name 6y agoThat is because it is not good for large general purpose systems. But it is good for specific domains.
- mypalmike 6y agoThere have been some general purpose visual programming environments which have had some degree of uptake. Prograph is one (http://www.andescotia.com/products/marten/ http://www.andescotia.com/products/marten/) - it is certainly niche but apparently there are users.
- Bombthecat 6y agoYou see that absolutely in every "new". Programming language. It starts simple, beautiful, easy to read and understand. And 10 years later: people want ways to write a ten liner, in one line compressed. The first one is easy to understand, easy to follow, the second one, not so much, even for the person who wrote it.. (after doing something else for a year for example) I hate it...
- TeMPOraL 6y ago> And 10 years later: people want ways to write a ten liner, in one line compressed. There is nothing wrong with that. People want to work with higher-level concepts, which allows them to solve more complex problems without burning their brains out. I'd go as far as saying that the utility of a programming language is measured in its ability to compress code with abstractions. All this means you have to first understand the abstractive tooling and the abstraction itself before you can work with it, but this is how it should be. Most programming languages are tools, not toys. The alternative would be to handicap all programming, make it impossible to solve complex problems with it for the sake of beginners, who want to get accolades without putting in work. You can't run an industry on participation trophies. By this line of thinking, we wouldn't have this conversation because inventing computers took work. Hell, none of us would have any conversation whatsoever, because language itself is something that takes years to learn.
- mrweasel 6y agoWhile it's a massive simplification of programming as a whole, I think you're at least partly right. Programming is in some cases over-complicated, for no reason. If you dig deeper however, you'll sometimes learn that the thing you considered overly complicated, was actually designed that way, not to annoy you, but because the same tool has to support use cases you didn't consider or don't understand. That's not to say that things couldn't be simpler in many cases.
- yodelshady 6y agoPerhaps we're bad at allocating tools to use cases, particularly for education. Witness, say, beginner python tutorials that start with "These 15 tools let you set up a development/testing environment that ensures your code can be tested against every platform that has ever run python". Useful tools, but poorly matched to the 'I just want to *learn how to* print "Hello World"' use case. I suspect we're all a little guilty of that occasionally.
- macspoofing 6y ago>Programming is in some cases over-complicated, for no reason. Which part is over-complicated for no reason?
- humanrebar 6y agoEverything happens for some reason if we want to be pedantic. I think the point was that some things do not justify their complexity. Especially if you discount inertia. Trivial example: the creat function could have been named create. That's one more thing folks just have to know and the reason for it isn't much better than "just because".
- macspoofing 6y ago>I think the point was that some things do not justify their complexity. Especially if you discount inertia. Again, can you provide an example? Because like you implied, tools like node.js and npm, were made with a purpose. They are professional tools made for professional programmers to solve commercial problems. They aren't made for beginners and novices to teach them about programming concepts. Their complexities stems from the fact that they need to support all kinds of deployment and runtime use-cases and can't be too opinioned on how they should be used. >Trivial example: the creat function could have been named create That's your example? Really?
- avindroth 6y agoYou say it like pointing out an obvious problem is hard to do. Programming is a very complicated activity, and of course it can be improved. Anything can be improved. There is no doubt about that. The question is whether it is easy to improve. Writing good software is hard. You say it like programmers have ego, but you know what is better than ego? Money. People would lay down their ego to make money (by making a more user-friendly app). But clearly it’s hard to write good apps. If you try any graphical programs you would see that it sucks. You default back to the terminal and vim because it’s better. I choose what works, not what gives me pride because this is work not hobby.
- user-the-name 6y agoI write code for a company worth hundreds of millions every day, with a world-class user rating. I don't use the command line at all. I CAN use the command line. I know very well how to do it. I have done it for decades. But when I program for iOS, I don't need it. The tooling is good enough that I never need to. So I don't. There's no reason this couldn't be the case for other environment too. There's nothing magical about iOS other than that Apple actually values developer convenience and put the effort in that others are unwilling to do.
- xenocratus 6y agoThis reminds me of the timeless quote: > Your scientists were so preoccupied with whether or not they could, they didn't stop to think if they should. You can take that either way :)
- imtringued 6y agoYou can just start up Eclipse or Visual Studio (the original) and have the exact same experience. That's how I started with Java and zero Linux knowledge. What you are really complaining about is the fact that nobody is there to shout in your face that these options exist.
- user-the-name 6y agoCan you do that for node.js, like the person in the linked article wants to use?
- m1gu3l 6y agoHow? It seems like you and the author are at the same energy level of complaining without putting up real ideas. How would you “fix” programming then?
- krageon 6y agoThe problem isn't the user-friendliness of the tools (many very friendly tools exist), it's the amount of energy the author is willing to invest (approximately none). When exposed to truly trivial tooling, the problem becomes a lack of practice in the type of thinking that leads to good programs. There we see that the core of the issue why programming isn't "easy" is that it's just not. It takes practice to get computers to do what you want to do well and no matter what tools you use getting to know the tools will not even take 5% of the time that you need to get to a place where you do what you want. Furthermore, the clamoring that there is some sort of nefarious gatekeeping cabal keeping programming from being easy to whoever cares to shout about it is fundamentally dismissive of the actual effort and practice put in by people who used to have (but no longer have) this problem. Sometimes the answer is just that it's not trivial thing to do and this shouldn't be a surprise to anyone. We don't think this of math, we don't think this of making good drawings or paintings.
- macspoofing 6y ago>We don't think this of math We do and we try every which way to make it 'natural' and 'easy', sometimes with vaunted social goals like stemming drop-out rates. The reality is, at some point, you just have to sit down, put your head down, and power through. Sometimes, like you alluded, there are no shortcuts. There are programming environments (sometimes even gamified) for learning, but if you want to use something to solve general purpose problems, you just have to learn it.
- krageon 6y agoPerhaps this is a cultural difference then, efforts to make math 'natural' and 'easy' are not something my secondary education had. You could either do it or you could not and if you could not you were put in a class that had basically no math (or just some very simple math if you picked economics).
- kortex 6y ago> ... it's the amount of energy the author is willing to invest (approximately none). When exposed to truly trivial tooling, the problem becomes a lack of practice in the type of thinking that leads to good programs. There we see that the core of the issue why programming isn't "easy" is that it's just not. If PATH and installing python is a struggle for them, hoo boy, no wonder they don't feel like part of the "code club". I merely type into my favorite search bar with auto complete "make sure /u" And I get: "make sure /usr/local/bin is in your $path" And top result is a SO spelling out what this message means and how to check. Engineering, of any discipline, is the sum of three phases: domain research, applying that knowledge to build something, testing that thing you built. With experience, you spend less time on 1 and more on 2, but with learning software, you spend the lion's share in 1. We still need to lower the barriers to entry. That involves teaching heuristics on how to solve problems.
- pcthrowaway 6y ago> The author is 100% correct on everything. The author is certainly correct on some things, but makes no good argument for why node.js should run in the Browser. I'm not even clear he understands what node is, or what he would gain from being able to use it in the browser, when it can already run Javascript just fine as is. No, Google should stop the show and bring node.js to his browser because he can't be bothered to go to Google to look up what a PATH is. I'm not saying programming can't be much more user-friendly; it certainly can be and should. Heck, maybe Chrome would do well to ship with a lightweight IDE to edit code in outside of the console. But the author hasn't listed a reason node.js has a place in Chrome natively, and is going on to claim they should. Talk about entitlement.
- xenocratus 6y agoIt's by no means an IDE, but Chrome does have Workspaces: https://developers.google.com/web/tools/chrome-devtools/workspaces https://developers.google.com/web/tools/chrome-devtools/work... . In any case, I remember using this (or something similar that maybe I forgot?) when I was doing frontend work, it was quite neat, especially if you had a local server recompiling things as you made changes.
- imtringued 6y agoThere are tools that do what he wants but they are not node.js. That's the problem. The insistence on a specific tool and the desire that the entire world changes to accommodate you instead of just picking a different tool that does what you want.
- grumple 6y ago> Programming can and should be much, much more user friendly than it is now. For what sort of users? It's clear a number of people here consider the command line difficult. I do not. There are many tools that make simple tasks very simple. I use it for manipulating tab files. I can pipe data through scripts and back through command line utilities, pipe it directly into a database, or do the reverse. It's very simple, and very powerful. Just because you don't understand it or aren't familiar with it doesn't mean it isn't simple, powerful, and user friendly. Most programming languages are very simple. a = 1, b = 2, if a+b > 2, doSomething(). You can't actually make the logic simpler than that - this is why visual programming fails. It's still programming, but it turns out a limited visual/gui tool to do these logical operations is much harder to manage and work with than actual code.
- AnIdiotOnTheNet 6y ago> For what sort of users? It's clear a number of people here consider the command line difficult. I do not. There are many tools that make simple tasks very simple. I use it for manipulating tab files. I can pipe data through scripts and back through command line utilities, pipe it directly into a database, or do the reverse. It's very simple, and very powerful. Consider all the things you've committed to memory that you've had to learn to do those things: all the archaic command names, all the one-letter switches, all the unreadable awk lines to re-jigger the formatting between tools, all the gotchyas and edge-cases you had to deal with in your scripting language, etc.
- minkzilla 6y agoBut in the long run knowing all that makes it easier. We could have some GUI for doing all those things but it would end up being a massive mess of buttons EVERYWHERE and endless menus. And maybe a nice wizard could be designed for the given example that you could check the boxes as you go and it would be easy to figure out the first time. But after 5 years of doing this same thing do you want to spend 2 minutes clicking through a wizard every time or do you want to have spent a little time learning some cryptic commands a couple years back and now you can type it out in 20 seconds. Or better yet you made a script and it takes 1 second to run ./processAndInsertToDevDb I think the point is that most programming tools aren’t made to be easy to use the first time. They’re made so that the 100th or 1000th time it’s fast even if every time it’s been a little different.
- imtringued 6y ago>Programmers tend to get very proud of the completely pointless knowledge they have to acquire to use the pointlessly complicated tools they do, and they confuse that with being clever. You need that knowledge to build production level applications. The problem is not that these tools are useless, but rather that the audience you are thinking of doesn't care about them. Instead of crapping on other's people's work just look for things that are actually suitable for your own needs instead of trying to one up the experts. >It's not. It's really not. Nothing has to be this esoteric and annoying. We've just chosen to keep things like this because we think it makes us clever. I'll be honest. I don't like people like you. You are making things harder for yourself. You have chosen to go down a difficult path and then you complain that the experts that need these difficult tools are stupid. Why? There are lots of easy to learn programming languages. You can start off with a very limited and restricted environment. Just fire up a google spreadsheet and start writing javascript if that is all you want. Don't complain that writing a production level web application is difficult because you need to know about complicated things like what a HTTP server is and why it has to run on port xyz and why everyone calls their own computer localhost. >Programming can and should be much, much more user friendly than it is now. It is so user friendly even kids can pick it up if their game supports modding. You're not looking hard enough. If someone were to hand you everything on a silver platter you would never learn on your own.
- macspoofing 6y ago>Programmers tend to get very proud of the completely pointless knowledge they have to acquire to use the pointlessly complicated tools they do, and they confuse that with being clever. Like what?
- chme 6y ago> The author is 100% correct on everything. Programming is massively over-complicated for no useful reason. I don't know of any developer that likes complexity for complexity sake for productive systems. I know there are some esoteric programming languages or obfuscation techniques that make simple things more complex, but they a either meant as a challenge for fun or efforts to protect IP. Do you have some examples where you have observed such design decisions?
- z3t4 6y agoI like to nominate frameworks for the complication category. People say they don't want to reinvent the wheel, but what they really mean is that they want to have the training wheel on.
- iso1631 6y ago> The author is 100% correct on everything. Programming is massively over-complicated for no useful reason. What are you trying to do? Say I'm Santa and have a list of names in "naughtynice.lst", in the format Joey Bloggs,train,nice Johnny Doe,car,naughty Mary Lamb,car,nice etc I can get my shopping list by simply creating a file on my machine my $i = 0; my $toys = {}; my $coal = 0; while (<>) { chomp; my ($name, $toy, $nice) = split(/,/); if ($nice eq "nice") { $toys->{$toy}++; } else { $coal = $coal++; } } print "$_: ".$toys->{$_}."\n" foreach keys (%{$toys}); print "coal: $coal\n"; and then typing perl test.pl naughtnice.lst to run it. Python I assume is similar. I'm fairly sure that OSX comes with perl, python and bash if nothing else. Now you could say that you don't like the syntax of perl, or python, or basic, or java, but actually knocking up a quick program and running is no harder than writing that same code in some hidden part of excel
- collyw 6y agoThere people are not made to be programmers. Having tried various visual tools over the years, they are at best no better than writing code, and at worst a lot less productive and powerful. They are only suitable for very basic tasks like email journeys.
- deepstack 6y agoThank you!!! Finally someone can say it. I've being extremely frustrated by developers who don't want to learn coding and just jumping on the band wagon cause it is the "IN" thing now.
- kichimi 6y agoThat is the best way to describe it, it's a bandwagon, they've been told everyone can code, and when they find they can't, they believe it must be the programming ecosystems fault, and not that they just aren't suited to being a programmer. There's nothing wrong with not being good at something.
- imvetri 6y agoEveryone will go through anger and frustration phase. Be supportive.
- izacus 6y agoProgramming COULD use a lot of simplification and removal of barriers. But still, just like you, I really hate the base attitude here. And for a different reason: I find that programmers who think like this, are also lazy when it comes to respecting the user. They're lazy when it comes to supporting accessibility. They're lazy when it somes to properly supporting i18n and making experience great for non-Americans. They're lazy when it comes to respecting privacy and not burning 8GB of RAM just to render a webshop frontend. They'll say "this is hard" and add Facebook SDK to do things for them. They'll say "this is hard" and make the page inaccessible for people that don't own a 4000$ 16" MBP and has perfect vision. That's the core issue of this attitude for me, which I'm seeing by too many people I mentor. Development is sometimes hard and requires hard work to do right by people.
- lionkor 6y ago> Programming COULD use a lot of simplification I disagree, actually. There are plenty of languages, and even visual programming (via flow-diagrams, like Unreal Engine's "Blueprint" and Blender's shader flow diagrams), for those who just want to play around. For people who want to write a quick and dirty script, languages like python make it very easy already (relative to what they actually do). > Programming COULD use [...] removal of barriers Absolutely agree with this, though. There's an unnecessary elitism in many places that really needs to go.. > Development is sometimes hard and requires hard work to do right by people. This is *so* important for these people to understand. There are languages and domains where the "elitism" is fully justified. If someone decides they want to write a high performance, easy to use, cross platform native application and complain about C++ or Rust being too complicated, then they should find an easier job. There is justified and unjustified elitism, and there are domains which could use, if anything, even more "complication" and more specifications, more "barriers" to ensure higher quality.
- aspaceman 6y agoYeah like there's 20 years of programming language research that studies exactly what this person is talking about. Graphical programming languages, removing barriers to learning, etc. They've been chugging away for decades and visual programming, Blender, Blueprints, Scratch, etc are all we got out of it. Does the article writer just think research doesn't exist? That CS sprouted from existence fully formed as a web browsing experience?
- imvetri 6y agoHow is your comment different from his post? Why I am questioning you is that You cannot call the author lazy. Just because one post gives you that opinion, doesn't mean he is a lazy person. The author gave a fresh opinion about web browsers and shared it with everyone. appreciate that. Problem - Browsers dont allow us to write code/ Solution - create browser extension / use console. Thinkers talk, doers do.
- kichimi 6y agoYou have not read the article. >The author gave a fresh opinion about web browsers and shared it with everyone. appreciate that. The author gave a stale opinion that can be answered by typing his post title into google and hitting enter.
- PotatoBoi 6y agoLook, I don't care about which editor you use: want to use vim? Fine, use it. Prefer Emacs? Looks good. You really like nano? Perfect! But for god sake don't expect that someone will ever take you seriously if you say you are experienced and don't know how to use a cli. How can you even work with computers not knowing what $PATH (yes, this exists on windows too fyi) is? This is just dumb. I'd also add: stop using javascript, don't, just don't (or, better, use vanilla-js).
- slifin 6y agoI make no opinion on the author but something like this: https://twitter.com/ibdknox/status/1328797793138266113?s=20 https://twitter.com/ibdknox/status/1328797793138266113?s=20 Does make me think programming can be radically different and maybe a lot easier
- TeMPOraL 6y agoDoubt it. While it looks cool, what it does is hide a lot of complexity in its standard library and presents only the surface layer - all bolted down to (what seems to be) an overcomplicated NLP processor (but what more likely is just someone playing with Illustrator) that you have to hand-hold to verify it generates sensible code. What I'd like to see is how it handles any kind of more complicated tasks - e.g. one where you need to build two or three layers of abstraction. Or one where you build domain objects that are used by other tasks. Or even one that showcases error handling. You can get something similar, minus the fancy NLP processor, in Unreal Engine, via its Blueprints feature. Suffice it to say, there's a reason people end up learning and switching to C++ the moment their problem starts to involve any kind of complex logic. Note: I'm not against improvements in programming experience, and more visual and interactive paradigms. But I've also played with enough dataflow languages to fully internalize that there is irreducible complexity in programming (that comes from it being an art of micromanaging possible states), and it's painfully hard to work with it in a flowchart form.
- robertlagrant 6y agoThis is like Spring Roo. Didn't really get off the ground.
- GuB-42 6y agoI think the author is not talking about career programming. If that's your job, you have no excuses not learning command lines and all the other stuff. This, I think, is more intended for people who are not really programmers, but would like to write a bit of logic, and find themselves with tools intended for professionals. Because I am an experienced programmer now, I may be biased but I have a feeling we raised the barrier to entry for programming. The author mentions Excel, that still exists and us used all over the world by non-programmers to write terrible macros. But I am also thinking about Visual Basic, a lot of stuff by Borland (thinking about Delphi). DOS even shipped with Basic IDE. As a general rule, I consider all "don't be lazy" arguments wrong. Machines are meant to work for us, not the other way around. The only ones who shouldn't be lazy are those who write the tools, so that users can be if they want to.
- tommilukkarinen 6y agoWhen you put it this way, it makes perfect sense. My first computer C64 came with Basic pre-installed and that's how an eight year old learned to code. I guess the equivalent would be, that there would a button 'code' on the browser UI, and that would lead the user onwards.
- richardwhiuk 6y agoOpen the Developer Console. Get cracking.
- Enginerrrd 6y agoExactly, that's what is weird about the whole premise of the article.
- oytis 6y agoWell, a developer console with "import" support and some GUI frontend to npm would be something the author wants. Sounds not that hard, right?
- ativzzz 6y ago
- phendrenad2 6y ago> "People hate command lines - not only do they LOOK scary, they give weird unhelpful error messages and… you have to type everything. Ugh. " Just for context: he'a talking about installing ruby/npm/node here, not about coding. Not about visual coding! The next line makes it obvious: > Can you imagine if the beginner version of Node.js came pre-installed with a GUI for managing and running your code?
- mgkimsal 6y ago> Can you imagine if the beginner version of Node.js came pre-installed with a GUI for managing and running your code? I feel like I almost have that in jetbrains tools. I can browse through composer packages, discover package names, and select specific versions. Not quite the same, but was a pleasant surprise to accidentally discover recently (but... it's still just wrapping CLI stuff, AFAICT).
- 000dry 6y agoI agree with you to an extent. But there is a balance to be spoken of here between laziness and learning. Laziness, in a way, is a driver of efficiency. You want to do something in a way that requires less effort. It is learning, though, that gives you the tools you need to be "lazy" (if we agree on reading "lazy" as a desire to do less, as opposed to a desire to not doing anything at all - there could be debate here). In turn, finding a way to do less work takes work itself. I guess what I'm trying to say is that these complaints could hold some validity, it's just a shame that the author doesn't seem like the type to do anything about it.
- throwaway2245 6y ago> "People hate command lines - not only do they LOOK scary, they give weird unhelpful error messages and… you have to type everything. Ugh. "... I have no patience any more for lazy know it alls I would guess that almost everyone who has ever learned programming has gone through this experience, been frustrated, and understood in the moment that this was bad UX that could be improved for learners. As such, your attitude, and lack of empathy, seems like gate-keeping to me. You have been treated poorly and accepted it, so other people must be treated poorly and accept it, in order to prove themselves. This only perpetuates bad practices. I would say that you are the lazy one, in not wanting to support other people in their programming journeys.
- kichimi 6y agoNo, I do not think you have understood my argument. There is only one word for someone, who approaches a topic they know little about, and suggests that its rubbish and he knows better. That word is 'arrogant'. And you are correct, I have no sympathy for arrogant people.
- ballenf 6y agoI don't know. I've been that guy, except I didn't whine about it in a blog post. I didn't know anyone who knew these things and didn't know how to find answers. Naive web searches were surprisingly hard to parse. I didn't even know Youtube had coding instruction. I ended up doing all my coding inside Google Sheets custom function editor. It let me log my output or be invoked in a cell on the sheet. Looking back that seems so strange, but what I realized is that all the setup instruction for it is directed at non-coders so they don't make any assumptions like the install modal on NodeJS that TFA complained about. All the tutorials and quora (eventually found SO) questions on Google sheets are asked and answered by laypeople. I can only imagine how much faster I'd have gotten my start if I could have used the browser itself. And the inspector console is useless until you can type your code perfectly on the first try (or second if you happen upon the up-arrow/edit functionality). So after I began my dev career I began volunteering at a free local library coding session. It was part-babysitting, but there were a handful of kids who usually had part-time access to a parent's budget Windows laptop. A basic coding environment inside Chrome or Edge (vscode lite?) would have made those sessions so much more productive. And I'd have been confident that no matter what computer they ended up on later, they'd wouldn't have to do any magic incantations to get back to coding. Even giving them a bookmark to one of the all-in-one dev env websites isn't enough. It needs to be able to run locally without internet. And those coding websites over the past few years have been changing so rapidly in interface and setup that it would easily throw someone for a loop who was just beginning.
- majjgepolja 6y ago> you have to type everything LoL they dont know tab completion exist. Discoverability & Learning curve is a point in favor of GUIs. But having to press more keys (offset by not having to use mouse & fight with shitty new designs) is not.
- II2II 6y ago> The author is lazy, and is channeling his energy into complaining rather than learning. I don't know about that. The author is certainly confusing programming with setting up a development environment. I can understand why they would be frustrated with the latter, since it takes away with what they are trying to do. When I started out, the latter was fairly simplistic: computers booted into BASIC. If you needed something more sophisticated, you could buy an IDE where everything would run right off the boot disk or after an automated installation. You can still find those tools, designed to serve everyone from home users to professional developers. That being said, it seems to be much less common. In some cases, like web development, that makes sense. The target is a standard rather than an operating system or hardware architecture. In other cases it is self-inflicted. When you choose to work with third party libraries, there is a much higher probability that some work will need to be done to integrate it. Then there is the WTF category. Take one of the easier cases: Java. Even though the development model is much closer to traditional languages like C++, the most common use case will involve installing an IDE and the language separately (possibly with some tweaking of the environment). That's not too bad, but it's likely more than people want to see when they want to get their tools up and running. Contrast that to C++ on a commercial operating system: you install Visual Studio or Xcode and are ready to focus upon programming for the chosen platform. Of course, C++ isn't always like that and it comes close to representing the other extreme. Setting up development tools for microcontrollers can be quite the task, particularly if you choose the "wrong" one. That's a good part of the reason why novices like Arduino and Platform IO, it makes going from nothing to a functional IDE fairly straightforward. Now I'm not going to say that the author is right, but I will admit that they have a point. Presenting Unix-isms in a macOS installer is going to rub some people the wrong way. That should have been addressed in a better manner. On the other hand, they were also attempting to accomplish something that is non-trivial to start with.
- deleted 6y ago[deleted]
- sidpatil 6y ago"When someone says 'I want a programming language in which I need only say what I wish done,' give him a lollipop." Epigram 93, Alan Perlis http://www.cs.yale.edu/homes/perlis-alan/quotes.html http://www.cs.yale.edu/homes/perlis-alan/quotes.html
- yesenadam 6y ago> a programming language in which I need only say what I wish done I like Prolog because it is that language. Other languages you have to write a program telling the machine what to do every step of the way. (Except if the program uses neural nets.)
- dboreham 6y agoLollipop on its way...
- johannes1234321 6y agoSoftware development is hard and complex. We, as software industry at large, however should work on two fronts: - Try to make things, which can be simple simple. Many do that out of self interest, but sometimes one is so used to complexitiest, that one doesn't see them anymore and we often fear redoing grown things as "it works" and we might break use cases and we don't want to relearn things ... - There is a large room for enabling non-programmers to build tools. In the past™ people built fancy tools on top of dbase, delphi, access, excel (world runs on excel ...) etc. without being programmers. There is an easy start allowing a domain expert to build a tool in their office faster than explaining the problem to the IT department. The solutions weren't nice from an Software Engineering view, but solved problems. This we have to enable with modern technologies instead of access conflicts to an excel file on a windows share ...
- imiric 6y agoI've always liked this design philosophy by Alan Kay[1]: > Simple things should be simple. Complex things should be possible. [1]: https://www.quora.com/What-is-the-story-behind-Alan-Kay-s-adage-Simple-things-should-be-simple-complex-things-should-be-possible?share=1 https://www.quora.com/What-is-the-story-behind-Alan-Kay-s-ad...
- jariel 6y agoNo, this is wrong, it has nothing to do with laziness. The author is very right to point out the fact that the browser in 2020 is still so fundamentally broken. Theoretically, tons of work should be facilitated in the cloud without having to download or setup a single thing. You should be able to make fixes, test etc. in github without having to download the code and toolchain as easy as you would on your desktop.
- robertlagrant 6y agoYou... can do this in Github.
- jariel 6y agoIn some cases, and in a limited way, yes, but it's clearly not well integrated yet. Even the 'local' version of software development is a giant mess, we have not well thought out dependencies, tool chains etc..
- deleted 6y ago[deleted]
- melling 6y agoYes, I love the CLI too. It’s quite efficient for many tasks. However, there are times when I’d like to do it all in the browser too, preferably on a tablet or small laptop. I won’t be at my most productive, but I’ll likely be sitting in my backyard or in a park.
- bccdee 6y agoYeah... you're being a bit unkind, but you're not wrong. The author mentions having "failed to install pip" — pip isn't exactly challenging to install. There's a base of important technical knowledge here that they don't have, and any GUI would just be a bandaid which prolongs the period for which they can get by without learning.
- BatteryMountain 6y agoWho/what kind of tech person doesn't know or complains about user/local/bin... this is like.. basics man.. I think the person is trolling.
- fxleach 6y agoI agree with you 100%, but also to be fair node, pip, and ruby can be incredibly frustrating to install in some scenarios.
- dokem 6y agoThe author seems to be confusing building software with using software. We can build higher level software that allows people to do more (excel), but someone still has to know how all that works (and even what /usr/local/bin and $PATH is) and be able to work at the lower layers. That is what a software engineer is. Do we need to marginalize and inclusive-ise everything to death?
- ubermonkey 6y agoOh my god you're so right. I read your comment first, and though "man, there's no way that article is that bad!" It is, though. It really is. He's some kind of self-anointed "thought leader" and "consultant". Because, honestly, of course he is.
- bambax 6y agoHe's not just lazy, he lacks some basic understanding: > Here’s my pitch: build a browser that comes pre-installed with node.js Okay, you don't have to know anything about JS or V8 or Node to live a normal life; most people don't and they're fine. But if you're going to complain that you can't "code in the browser" you should try to understand what you're talking about a little more. This sounds like an elaborate prank.
- potta_coffee 6y agoThat one statement makes me almost convinced that this is satire.
- bambax 6y agoYes it very well could be.
- na85 6y agoI'm not a software engineer, nor a comp sci grad, nor a professional coder. I've ranted on HN about bad documentation in programming before (Lisp being a notable target of my ire recently), and I'm by no means an expert. But when you have someone who by his own admission can't install node.js, pip, or ruby and yet claims >Because I love building things using code. I mean, someone who "builds things using code" should be able to install ruby. I've never even attempted to use ruby, don't even know what its syntax looks like, but I guarantee you it can be installed by something akin to $ apt install ruby I can't even fathom how a person who has allegedly built things with code can "try and fail" to accomplish this.
- Izkata 6y agoFor that matter, I apparently already have ruby installed and I don't know when or why that happened. I don't use the language. (Ubuntu 18.04, maybe it just came with this distro?)
- aaomidi 6y agoYou probably should've held back. This is the exact type of behavior thats unwelcoming in this industry. You don't have to type to write programs. Many people don't. It's why applications that do visual programming have opened the way for AMAZING bursts of creativity. Everyone should be able to communicate with a computer. The more people that are the more likely it is were going to make fascinating things. Your elitism in programming is showing. And it's not welcome.
- axaxs 6y agoAbsolutely not. I'm not sure why programming is the one field people make a joke of. It doesn't happen in any other field that I'm aware of. Hear me out. Do you ever see ads for 'become a doctor in 6 weeks, land a job'? Or plumber? Or electrician? Or anything else? No, but you do for programming. Do you ever see people whining that being a medical doctor is too hard and confusing, and demand that everyone should just have a handheld with webmd? Programming as a field requires many years to really understand. And even when you understand, it's just some niche, not -everything-. Nobody knows everything. And that's not completely dissimilar from other trades/professions. I'm not trying to gatekeep here. I encourage everyone to learn to program, -if- they take the time to learn. If they don't, they do not belong doing it as a profession for others. Just as people can toy around with wood in their garage, so long as they don't call themselves a professional carpenter. That's how you end up with glaring security and privacy problems that we read about nearly daily. Imagine if anyone could call themselves a doctor, and constantly read stories of people dying from horribly botched practices. I think the only real solution here is for the profession to be certified somehow, as other countries do.
- aaomidi 6y agoGod I would hate to have this type of behavior as coworkers. I can't imagine what a "certification for programming" would even look like. Programming is a completely different field than others - it's exactly that type of difference that has made programming far more welcoming than others. No one is denying that you're not going to be the best developer in a few days. But I welcome everyone learning the way they want to and how they want to, and for others in the industry helping them learn. And for your example, I'd much rather hire someone who has worked in their garage with wood for a decade than someone who just got a certification to call themselves a professional carpenter right out of trade school. And yes, you are literally trying to gatekeep because you're realizing the thing you've spent thousands of hours learning is actually not that difficult and is getting easier and easier every day.
- 908B64B197 6y agoThe author can't seem to make a basic google search either. What he's looking for is basically Anaconda for python or MatLab; Environments that are already pre-configured with packages so you can import whatever you want and start coding. But that's less clickbaity.
- moistbar 6y ago100% agree. I immediately stopped reading as soon as he said "wtf is a user/local/bin in path?" Someone that ignorant of the absolute basics of how a computer works has no business complaining about the user-friendliness of programming.
- brundolf 6y agoWith a little bit of charity, I don't take it as a serious rant ("I can't believe we have to deal with this stuff! I demand it be made easier!") so much as musings about possibility ("How much better could this be? In what ways?"). I think the tone is a little bit exaggerated on purpose, for effect, as if one is imagining a future world in which we've progressed so much that 2020's status quo really does become unacceptable. I think as a set of musings it's totally valid: there really is a ton of yak-shaving that still stands between "coders" and "non-coders" which actually has very little to do with code itself. It's a good exercise to brainstorm which speedbumps are unnecessary and what we could do to remove them.
- dang 6y agoPlease don't cross into personal attack and name-calling in HN comments. It's against the site rules: https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html. Indignation commonly gets a lot of upvotes but it's not what we're looking for here.
- kichimi 6y agoI was aware of that when I posted, but honestly I'm tired of threads like this even hitting the front page of HN. What value does this article even add? It's a google query with a rant attached to it.
- dang 6y agoThat's a separate question. We need you to follow the rules here regardless of how much value an article adds. Perhaps you don't owe the article better, but you owe this community better if you're posting to it. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- kichimi 6y agoYeah that's true. I humbly fall on my sword.
- pvg 6y agoWhat value does this article even add? You started a 200+ comment value-subtracting subthread so the 'should have stuck to the guidelines' argument seems extra-solid here.
- kichimi 6y agoWell I don't know if it was value subtracting, I learned a lot and there was a lot of interesting discussion about history and attempts at graphical programming environments.
- steve76 6y ago> I have no patience any more for lazy know it alls in regards to programming. Lock yourself in a palace of a library while the world goes to hell around you. Once you're finally out in the real world, make it even worse with ruthless greed and betrayal. Yeah. Thanks Gandhi.