13 ms·
Was going to edit this in but it quickly turned into a related rant about the state of things: if you don't want that, scroll past. The real problem is that th
by alexb_ 4y ago
Was going to edit this in but it quickly turned into a related rant about the state of things: if you don't want that, scroll past.
The real problem is that there's no more room for the technological "middle class". We've gotten to the point where you cannot be SLIGHTLY interested in computers, want to make a quick app for yourself, or make something small to share with the world. You either have to have no interest at all (and live in blissful ignorance) or be so into this type of stuff that you might as well just make it a career. In between these two extremes lies a valley of frustration and needless complexity, where everything is always breaking and changing because we found out what was used 2 years ago is actually bad but THIS TIME IS DIFFERENT! because now we found a solution that is totally going to work forever this time. It's exhausting to even think about.
Many people got their start programming with something like messing with simple Visual Basic stuff. I, and I'm sure many others who are reading this, started with a TI-83 and a desire to cheat on my math quiz. I know that I'm going a little off the rails here, and this has become more of a rant than anything meaningful, but I really, really hate how there's quickly becoming no space for that sort of thing - nowhere for people formerly uninterested in technology and programming to get their feet wet, nowhere to make a quick application to accomplish a small task, etc..
- tosh 4y agoIn a sense no-code tools are today’s Visual Basic.
- mike_hearn 4y agoWell, not really. The no-code tool of the 90s was Access or maybe Excel. VB was useful exactly because it was code, but simplified. One thing the Microsoft stack really nailed was a smooth(er) on-ramp. There was a big gap between VB and C++ which is partly what motivated the development of C#/Java but otherwise, you could start with Excel or Access, move up to VBA and build an actually useful app that delivered business value. Then you could take those skills and move to VB6 and build "real" apps that you could ship to users and charge money for, build whole businesses around. You could learn some Win32 using VB/Win32 interop and then progress to C, and from there, to C++, or later from VB to VB.NET and then C#. The web stack sort of killed all that. You can start with HTML and get some results pretty fast but you'll very rapidly hit the limits of what can be done there and suddenly be hit with this giant wall of complexity. NodeJS helps because now you can use the same language on backend and frontend, but even getting to the point where you have a frontend and backend requires mastering a heap of tech with appalling usability (like UNIX). And the modern JS ecosystem is sufficiently complicated that you'll hit problems like the ones described in the article. One way to fix this is to bring the VB6 model back, by making desktop apps great again. It can be done. There are toolkits that make it easy to write standalone cross-platform apps (e.g. JVM languages+JavaFX, Flutter, the new C# stuff, Qt, etc). There's no fundamental reason distributing desktop apps must be difficult, it's just a neglected area of tooling. And that's a nice segue to my current startup, which is tackling exactly that problem. We've produced a tool that makes distributing desktop apps as easy as distributing web apps is (or easier!). It takes the output of your build system (if any) as inputs, and builds self-updating packages for Windows, macOS and Linux without needing you to actually have any of those platforms. It can also fully sign those packages itself (without needing macOS or Windows), or self-sign them in which case you get a `curl | bash` type install experience and the PowerShell equivalent for Windows. Finally it produces a simple download HTML page that detects the user's OS and gives them a nice big green button to click. We've talked to one well known tech firm that wants to integrate this into their products and a driving reason is, in fact, educational. They have a lot of new programmers who use their developer tools and who learn with a desktop toolkit because it's easy to get things on the screen, there's one language to learn, it's all cleanly following the principles they're taught in class (like objects) and so on. But then they hit a wall when they want to show their friends and family what they're doing, or graduate to actually getting real users. Smoothing that on-ramp should help a lot. At the moment the tool is in private beta, but if you want to try it email me (address in my profile). After public launch it'll be free for open source projects, licensed for commercial projects. Thinking about a feature that automatically bundles source and adds a "view source" button to the apps, to help students who haven't yet mastered uploading code to GitHub.
- aahortwwy 4y agoThis just isn't true, though. I have quite a few non-technical colleagues who know just enough Python to Get Shit Done. My father (a writer) taught himself R for research purposes and is productive with it. Universal Paperclips has a super-basic JavaScript codebase[0] but was a really popular game. Thing is, if you search "how to do X in Python" you're going to get a bunch of resources aimed at professionals because they're the ones looking for that stuff most of the time. That doesn't mean the resources are prohibitively complex, they're just for people solving a different problem. [0] https://github.com/jgmize/paperclips/tree/master/docs https://github.com/jgmize/paperclips/tree/master/docs
- wrp 4y agoBut are they building software tools that are useful and stable enough to distribute? That's the level of capability he is talking about.
- aahortwwy 4y agoThat's not what the linked Twitter thread is talking about, nor is it how I interpret "make a quick app for yourself, or make something small to share with the world" or "make a quick application to accomplish a small task." Those things are eminently achievable without having to embrace the level of complexity that's so popular in professional software development. And I actually think the level of capability you're talking about is within closer reach than most people realize. Certainly it's much easier now than it was even 10 years ago. Probably not something that a non-programmer can accomplish on day 1, but I'm not sure there's many crafts that can be learned that quickly.
- wrp 4y agoBy "distribute," I didn't mean as a commercial product. I meant just sharing with other people. There is a huge difference between being able to tinker with Python/R and being able to make a package usable by strangers.
- prionassembly 4y ago
- BlargMcLarg 4y agoIf we have a middle class in tech, we also have the "temporarily embarrassed millionaires" pretending to be the top claiming everyone below them isn't good enough for something as simple as creating a few endpoints and vibechecking rather than checking skills. And this extends all the way to the job market, where you now need 3 years of experience for a skill most people know how to use in about a week tops, and only lack the exposure of that skill used in a corporate setting. Where people will parrot "you need 3 months to not be a liability! (or more)" when those individuals will easily earn themselves back in the same timeframe. For projects where all you really do is create endpoints, process the most basic of information and expose it in certain ways. For reference, most people in STEM majors need to learn more difficult stuff in a shorter timeframe, with less help.
- Tade0 4y agoI had an interesting conversation the other day with our delivery manager and two other developers from another team, who had a wildly different than me assessment of a recent candidate. Their argument was that he didn't know this and that and how is it that I deemed him worthy? I interjected by saying that during these 30min I get to ask questions I don't have nearly the time to check one's skills throughly. And the same is true for them. The most I can achieve in this timeframe is check whether the person won't be actively harmful to the project by e.g. being a charlatan or just malicious. This was news to the delivery manager and they didn't approve of that. I refrained from replying that our rates vs the market don't really put us in a position to be picky. But I did tell them that I worked with "net negative" people(with examples) and it's really not about the skills at the moment of hiring.
- BlargMcLarg 4y agoI'd like to see more of this. It astounds me that software dev, historically seen as a field with and for "poor communicators", somehow believes its interviewers can do what top psychologists consider almost impossible to do. Same happens across almost every industry, but really, tech? "Cold hard logic" tech somehow became "yeah we can totally psychoanalyze someone in 30 minutes by talking"? Worse, the lack of structure across the entirety makes it more of a lottery and a guessing game which is more or less sold as one's personal (in)capabilities. It's far more harmful than people make it out to be.
- jquery_dev 4y agoI've started programming around 10 year ago without any Visual Basic code. There are so many more resources nowadays to get started programming, back in the day there was no way in hell you'd get something like repl.it where you don't even need to install anything. What stops you from creating the most simple html page and playing with CSS? That counts as programming to me, there's also scratch for people who are completely new and want to learn.
- throwaway675309 4y agoMaybe but it depends on what you mean by "back in the day". Because back in the day a lot of computers came preinstalled with some version of a BASIC interpreter, And some machines literally booted into basic by default, so programming became just a natural extension of the users daily computing process. However, If you're referring to 2012 as back in the day, visual basic was by far and away completely deprecated by that point, if anything people would've been using Visual Studio community edition to do net programming and maybe visualbasic.net
- ratww 4y agoA big issue is that 10 or 20 years ago the steps for creating a webpage were simple: just open notepad (or whatever) and put some HTML. Today you "gotta" install node, yarn, webpack, react. Then you gotta make a package.json and configure webpack. Or replace webpack with something called "crap". At least that's what all the "for beginners" tutorials that everyone recommends says! Nobody ever said I could just use notepad!!! But that's not exclusive for frontend. 20 years ago you'd get a random server with Perl. Probably free. 10 years ago you'd get a random server with PHP. You would use FTP and notepad to learn the ropes. Today you must install some advanced editing software with some plugins, use a terminal, install some runtime or compiler, get some packages, which won't work, so Google tells you to use "sudo" so it works, but that's very suspicious. Stack Overflow says shouldn't be "sudoing" by the way, this is dangerous, you should actually install this "version manager" thing here to install the first tool you installed, so maybe uninstall the first tool, although there's no uninstaller. Oh, and you need this "package manager" tool that install the version manager in the first place. Then you gotta learn to deploy. At this point you're already too old for this shit. Desktop apps? Good luck with that. OF COURSE there are simpler solutions, like just making a website with HTML as you could before, or Jupiter Notebooks. But few people today will stumble on that by accident.
- Angostura 4y agoWhatever you think of it, I think that MS tries to cater for these people with things like Flow and PowerApps with Office 365
- o-o- 4y agoI think you sum it up well. That gap extends to more than JavaScript. When I was four I could operate our TV: turn on, choose channel and adjust the volume. One device. One remote control. Bach then four year olds could also operate phones and record players. When I was five me and my friends could operate a tape recorder, copy music, record music, create tapes and physically share with friends and family.
- alex_smart 4y agoI think in this particular case, the problem was just picking the wrong tool for the job. Python is the primary language used for data science these days, but it is not particularly designed for it. It is a general purpose programming language. If they had chosen something like R, their path would have been a lot smoother.
- wrp 4y agoSmoother but not smooth. I once, not by choice, taught R to humanities grad students who had never programmed before. The wailing and gnashing of teeth over the course that semester was considerable, and I have stoutly refused to ever do it again. The irony of it was that they really didn't need to do anything that couldn't be done in Excel.
- wrp 4y agoThis has been a professional concern for me for many years. I lead grad students with no programming experience into making their own tools for research and sharing. I've completely given up on learning a programming ecosystem and building programs from scratch. Rather, I work within applications that can be scripted to a task. I envy the engineering students for whom Matlab is enough, because that seems to be the closest modern equivalent of Visual Basic. Mathematica is sort of there, but much harder to learn and not easily shareable.
- elorant 4y agoOr you just ignore all the shiny new things and go with older technologies that work like a charm. I for one, still write code in jQuery, and don't plan to switch at least for the next five years.
- mbrodersen 4y agoYep exactly right. Do as much as you can with plain HTML, CSS and JavaScript. Learn the basics without depending on any packages. And only then maybe add a package if it really absolutely is worth it compared with writing a bit of extra stuff yourself. Every build system or package you rely on will become a liability and a major pain point down the road. Guaranteed.
- a_square_peg 4y agoYeah - I work with Python for my main work dealing with weather & climate data but things still throw me off. It feels like every example I run into is an easy to follow "20-steps + 10 packages + 64GB cloud server instance" process when all I want to do is to download some historical temperature data to CSV. Example: https://github.com/jwagemann/era5_in_gee#workflow-overview https://github.com/jwagemann/era5_in_gee#workflow-overview
- wonderbore 4y agoI’m pretty sure you can still write some js and load it into the browser or node. The issue is that 10 small instructions become a hundred (thankfully) and so if you read the wrong article you will be lost. If this guy was told to use `require` instead of `import` it would have most likely just worked. The instructions were wrong so he failed. Even back then though you still needed to RTFM. The first time I wanted to do a bubble menu (the one that follows your cursor, focusing an item of the menu) I was redirected to Flash.
- jerf 4y agoI've been programming on the web since 1997. All the techniques developed since then still work. I still have a couple of "web 2.0" websites I've developed running at work... because while I nominally have all the language skills, I only dip my toes into the chaotic world of "the latest JS best practices" a few times over the years and have not been able to justify the effort of keeping up when it is changing at a higher frequency than I have needs. If someone drops me into a functioning project I can adapt quickly, but starting from scratch has become virtually impossible in any reasonable period of time anymore. This really only hurts with UI stuff. Other JS I can write just fine; pure Javascript in the browser has gotten pretty powerful, it all but has jQuery built in now, you've got XPath, a templating language (simplistic, and needs a bit of XSS care, but adequate for small needs) and a lot of other useful things all just sitting there, but if you want a big widget setup there's a huge learning curve to get there, even for an expert programmer. For the novice, "classic web" would still be a very powerful thing to learn that isn't too hard, but it's hard to find those references now underneath the pile of not quite functional tutorials, broken install instructions, entirely different languages creeping in (Typescript), etc. It's a total disaster for someone trying to learn this way.
- bennysomething 4y agoOn a related note I think this is what is sort of wrong about the raspberry pi as tool for teaching beginners: the first thing the user sees and interacts with is Linux. In the 80s on a bubber key spectrum as far as I can recall it booted straight into a basic prompt / repl (or whatever the right term is). Even 8 year old me could start programming. Compare that to trying to get anywhere with Linux as a beginner.
- rvba 4y ago> We've gotten to the point where you cannot be SLIGHTLY interested in computers, want to make a quick app for yourself it seems Excel is the last place like this - to make small pseudo apps, but it comes with its own fair share of problems (mostly calculations or Excel as a database, no sharing) I think VBA used to be the thing, but the one inside MS Office is "technologically" stuck around year 1996
- wly_cdgr 4y agoThere's space in tools like Godot, which has a relatively stable API, tight and helpful integration with its custom scripting language as well as support for both C# and C++, solid docs, first-class support for 2D, the ability to export to mobile as well as web and desktop, and the ability to toggle between a continuous rendering mode suitable for games and a reactive rendering mode more suitable for apps. GameMaker, too, has a very stable API for its proprietary scripting language and, though it is made with 2D gamedev in mind, can work just fine for simple apps for personal use. Defold is worth mentioning as well