6 ms·
The problem with programming nowadays is not so much the programming language or the algorithm. The problem is the ecosystem. "In the old world" (as an example)
by geff82 3y ago
The problem with programming nowadays is not so much the programming language or the algorithm. The problem is the ecosystem. "In the old world" (as an example) you bought Turbo Pascal, installed it on your MS-DOS and practiced and explored the system, one step at a time. Nowadays, aside the OS, the IDE and the language, you have to deep-dive into different frameworks, different tools that all do the same thing in the end and understand how the pipeline works that, in the end and due to some magic produces something.
- chii 3y ago> you have to deep-dive into different frameworks, different tools that all do the same thing in the end you aren't forced to use these frameworks and tools. You can chuck a NIH syndrome, and just write everything from scratch. The only reason you wouldn't is because you aren't interested in programming as a craft in itself, but is only interested in the output and productivity.
- kragen 3y agomaybe what you need to practice is figuring out how to locate, evaluate, and use new libraries and tools? if not, then that means those libraries and tools save you less time than it would appear, and you might as well write your own code
- karmakaze 3y agoIt also depends on the language and ecosystem. I've found that with Go or F#, they typically use smaller task oriented libraries, the largest of which might be an http router, client, config reader, and db driver. There may also be larger more framework style libraries but tend to be less often used.
- klabb3 3y agoYes. When people ask why I prefer Go over Rust (as a solo dev in web-adjacent space) it’s mainly two things: - std lib that does some really heavy lifting. (Dep tree is maybe 10 libs total, 2-3 layers deep for mid-sized projects). - concurrency is simpler and less boilerplate. Data races is a non-issue with good hygiene + race detector I would normally throw in the Go toolchain as a plus but I think Rusts tooling is very good as well, in some cases maybe even better. It’s much more of a problem with other languages.
- jodrellblank 3y ago> "The only reason you wouldn't is because you aren't interested in programming" Niklaus Wirth said writing an RDBMS was too hard for him.[1] Where does that fit into your "only" reason? [1] in the Questions/Answers section at the end of this presentation https://www.youtube.com/watch?v=EXY78gPMvl0 https://www.youtube.com/watch?v=EXY78gPMvl0
- adamddev1 3y ago> you have to deep-dive into different frameworks, different tools that all do the same thing You can also just choose one language/tool/framework and do _everything_ in it. I know this might get snubbed, but you can do almost anything these days with TypeScript. It can be as typed or dynamic as you want it (well sort of), plays well with UI/web/react, server with node, has pretty good performance these days, and you can even easily run CLI scripts with tsx. `#!/usr/bin/env tsx` (https://github.com/privatenumber/tsx https://github.com/privatenumber/tsx)
- alkonaut 3y agoThis is why I like doing desktop dev (I imagine gamedev is simimlar). I grew up with turbopascal and similar. Doing desktop dev today is very similar. You have ONE repo. It has ONE tree of code, producing ONE project in ONE compilation. Your IDE has a play button which launches 100% of the product, on your local machine, in ONE process, exactly as it would work and look at the end user. Being able to break the entire process of the product and step, knowing that there isn't some other process somewhere else (a db, a web server) that keeps its own state is bliss. Highly recommended. Sure it's still lots of abstraction and you'll use a couple of frameworks. But a 10-20 year old framework in the desktop business is still a young one so there isn't that element of framework fatigue that you have in the web ecosystem.
- lolinder 3y agoTo make an analogy here—all programming used to be at most as complex as making a shed in your backyard. Now a lot of programmers are designing and implementing the equivalent of high-rise buildings. The existence of the large-scale programming tools creates the sense that you have to use them for your backyard shed projects. The thing is, you don't! Nowadays you don't even have to go out and buy Turbo Pascal in order to practice, you can just create an HTML file on your desktop and open it in your favorite web browser! Heck, if creating a file is too complicated you can press F12 and start scripting right away. Most operating systems come with Python preinstalled, so you can just drop into a REPL at any time, or write a script and run it. Programming hasn't become more complicated to get into, it's just that software engineering is growing up and people are given the false impression that they need to start with the professional tooling. We in the industry should be reminding people how truly simple it is to get started with something small, not bemoaning the existence of the large, complex and nearly interchangeable tools that we have to choose between to work at scale.
- danielvaughn 3y agoI really want to create a series of tutorials on getting started with programming, but with this kind of focus. The biggest risk as a beginner is getting (a) distracted and (b) overwhelmed. By filtering out the noise and starting out small and simple, we'll make it much easier for newcomers to grasp the basics before learning about modern toolchains.
- colonelpopcorn 3y agoAt the same time, it used to be expected you would learn to program a computer you bought. So much so, that operating systems shipped with BASIC and a language manual. That is not the case today, but I guess software doesn't ship in the same ways it used to either.
- bluetomcat 3y agoIf you don't start with the professional tooling, you may have good fun, but nobody will hire you. When I entered the industry 20 years ago, "software development" generally meant desktop application development (Visual C++, Delphi) and "server-side web development" (PHP talking to MySQL, spitting out HTML). By just knowing how to upload files to an FTP server, you could do your own address book application or CD catalogue, and get hired. Now you need to fool non-technical people into demonstrating "industry" knowledge of a specific combination of Tool A/B/C.
- sim7c00 3y agoit took me like 5-7 years to find my way back to the old ways from within the muck of frameworks and high level maze/jungle that is there now. just to explore and learn my system... but i do recognize, programming itself has changed. less people are programming computers or devices, more are hooking in to frameworks, both are programming and creating cool stuff. i hate the jungle though, its a hot mess with lots of mosquitos and other bugs that constantly bite u! i am rather in the desert, where there is nothing and the few bugs you encounter are avoidable, but super fatal at the same time when not avoides or handled with care :')
- dakiol 3y agoOh boy. I would love to dedicate my entire working hours to the pure joy of programming (talking with customers and understanding their requirements, included). Instead I have to deal with tons of BS and accidental complexity in the form of: - k8s - ci/cd - containers - gradle/npm/poetry/composer/etc - ORMs - aws/gcp - jira/scrum - swagger/grpc - kafka/sns/rabbitmq and tons of yaml.