7 ms·
I disagree. Creating a program that meets todays' users expectations is what's harder. But learning programming by itself, is way easier. We have Python, Rub
by sametmax 9y ago
I disagree.
Creating a program that meets todays' users expectations is what's harder.
But learning programming by itself, is way easier.
We have Python, Ruby, Javascript... We have the Web as a platform and as documentation. We have communities and cheap, fast computers.
The hello world has never been easier to do.
What's hard is to make a real time offline first SPA with a beautiful responsive design that uses the same API backend as the mobile app while integrating with third party Saas and leveraging social medias.
- deleted 9y ago[deleted]
- rconti 9y agoBut the learning curve of getting an environment setup to do that is steeper.
- user5994461 9y agoIt's not. Installing a C++ tool chain two decades ago is much harder than any current environment.
- umanwizard 9y ago"Learning programming" doesn't mean "learning C++". A lot of people learned on some BASIC that came pre-installed on whatever device they bought.
- sirmarksalot 9y agoAnd you're typing this comment from a full-featured Javascript IDE.
- rconti 9y agoFor decades, "development tools" was a (relatively) standard bit of kit on any Linux distro; in fact, you needed it to compile basic software you needed to run on the machine. These days, every environment/framework has a different distribution method/model involving running random shell scripts or learning git or whatever. For example, on OS X (I imagine this is harder on Windows, possibly easier on Linux) Python: To install REAL Python on OS X: * Install GCC * To install GCC you need XCode * To install Homebrew, use Ruby to curl to a random shell script on github. * Export a path * Use brew to install python3 * Brew installs pip for you (and then?) React Native: * Assuming you have Node installed (yeah, sure, why not!): * npm install * create-react-native-app * npm start * Then download Expo client on iOS or android phone and scan a QR code...
- Too 9y agoI thought it would be easy on windows but was baffled how bad the instructions on the python website are. The getting started guide still caters for windows xp and choosing py2 vs py3 is still considered a good decision for beginners. 1. browse to python.org 2. get confused whether to choose python 2.7 or 3.6 3. get confused wheter to choose gzipped sourced tarbal, XZ zipped source tarbal, embeddable zip file x86-64, embeddable executable installer x86-64, embeddable web installer x86-64, and then repeat all those options for x86. T___T 4. open installable, press next a few times. Last time i did this there were some confusing options to select there also, like wheter to use %APPDATA%, add to PATH or not. On linux: sudo apt install python3
- groovy2shoes 9y agoReally? I remember it being rather easy circa 2003. On Windows, you could download an installer for Dev-C++ or the Borland compiler, install it like any other program, and you were done. On virtually every other platform, you didn't have to do anything at all: the system came with a C++ toolchain ready to go. I'd say it's still just as easy to get going with those sorts of tools now, and the same goes for many other languages, like Java and C# for example. That said, I think the question of whether it was easier to start programming then versus now has a more nuanced answer. The kinds of programs people are likely going to want to write—like mobile apps, web apps, and games—are a lot more complex these days than their equivalents were back then. On the other hand, there are boatloads of free tooling and information readily-available to help people through it. On the third hand, there could perhaps be issues of information overload if you go looking without a guide. So, getting started is one thing, and I can't say for sure whether it's harder now versus then. Of course, that's a slightly different question than whether it was easier to learn programming then versus now. This question is easy for me to answer: of course not, learning it now is just as easy[1] as it's ever been! [1]: Or hard, if you're of the glass-half-empty persuasion ;)
- user5994461 9y agoYou had to install Visual Studio then the Windows SDK then probably other libraries. Then spend an afternoon to set environment variables and project settings until it can compile anything. Dev C++ and code blocks had a an easier start, although they were bugged to death and only used for hello world projects. Borland is paid software. There was a free edition was very challenging to obtain. That certainly contributed to the death of the company. If we talk about two decades strictly. There was no internet so you couldn't find any tutorial or help page. Books were selling for $50 each and you couldn't Ctrl+F them. On Linux a newbie can "gcc -o helloworld.c" to compile his first C file. Then there is a massive gap until he will be able to compile multiple files with make, auto tools, manage external libraries and package anything to run on another computer. Now it's 2018 and Linux still doesn't have a C++ debugger.
- deckard1 9y agoHow so? Two decades ago was... 1998. You pop in Visual Studio 6.0 click a few buttons and it's done. On Linux we had gcc/g++, which came preinstalled in every distro. Even if you factor in setting up Makefiles and autoconf and friends, those are nowhere near the complexity of configuring webpack for a SPA, let alone installing everything you need for a functioning stack. We're talking days, weeks, and even months of tedious fighting to get everything setup. You have to worry about setting up web servers, HTTPS, CORS, what type of backend API to use, what ports your various microservices live on, what HTTP framework to use, which babel settings to use. I spend way more time these days on architecture and overhead issues than feature work. It's not even ballpark close. C/C++ I set the Makefile up once for the architectures I need and I'm done. In C++ in 1998 you were also never in danger of having to upgrade a major component in the middle of development. I've had to upgrade node, React, webpack, and others all within the same year. The shrinkwrap supply chain vanished and so did the costs of pushing out new releases. New releases, I might add, that have a shit ton of bugs (never, ever, ever touch a X.0 npm package, jesus christ do not do it)
- fragmede 9y ago> Even if you factor in setting up Makefiles and autoconf and friends, those are nowhere near the complexity of configuring webpack for a SPA, let alone installing everything you need for a functioning stack. We're talking days, weeks, and even months of tedious fighting to get everything setup. That's an overly rosy view of the past. Makefiles are inscrutable for a newbie. We're talking hours just to figure out tabs versus spaces for indentation. Google launched in 1998 so that was barely Googleable, there was no Stack Overflow (remember expertsexchange.com?). Older C compilers utterly failed at useful error messages on trivial errors like missing semicolons, or closing strings or braces, and 1998 was before Boost, so good luck getting STL Vectors working. These days languages have hashes/dicts available as a built in data structure. If you were lucky in 1998, you had a C string library and no one had to call ::malloc (or worse, ::realloc). There have always been major component upgrades if you choose to get distracted. Circa 1998... remember that whole mess with 2.2 vs 2.4 Linux kernel? How about upgrading Debian versions was and that fun with incompatible versions of libc? i386 vs x86_64? STL? How about rewriting to use Boost (version 1 came out in '99)? Getting Boost to build in the first place was at least a multi day adventure. As a newbie, setting something up on a modern stack is actually pretty easy - because that's no longer something to setup by hand. Clone the tutorial repo, grab their docker container or `npm install`, and you're up and running.
- bsder 9y agoAdd a decade and your statement is correct. Getting a C++ toolchain in 1998 was pretty easy. You were either Windows and lived with whatever Microsoft abomination they shipped or you were on a Unix and you installed gcc and vi/emacs. Truly smart people installed CVS. In 1988 on the other hand, you sometimes had to figure out how to bootstrap gcc--possibly from the broken garbage compiler the manufacturer shipped and sometimes from nothing at all.
- gowld 9y agoAs hard as clicking one link: https://repl.it/ https://repl.it/
- hokumguru 9y agoEven for more advanced web-dev stuff I'd argue that the tooling has made things much easier for getting started. For instance create-react-app does all the heavy lifting in basically a one-click package.
- sanderjd 9y agoIs it? When I was learning to program, I had a computer with Windows on it and no money. First, I needed to install Borland's C++ compiler / IDE, because that's what they used in the class and computer lab at my high school and I didn't know of anything else. But I had no money, so first I had to figure out how to pirate it. Then awhile later I heard that there was a free compiler on this operating system called Linux. So, after reading a bunch of stuff to figure out whether I wanted Slackware or Gentoo or SuSe or Fedora, I had to figure out how to download and install Linux. Then I had to figure out how to use GCC, but first I had to figure out how to edit text, which meant figuring out how to use Emacs. Then I finally had a usable (and legal) development environment. Nowadays it seems like I could just get a Mac and download Atom to get to that same point. Maybe there are other hard things to figure out now, but it just doesn't seem true that it was easier "back in the day", at least 15 years or so ago.
- darth_mastah 9y agoIt's as if you were describing my own experience. With the only difference, that I had to figure out how to use vi. Such fun! I took me some time to figure out how to exit the editor, let alone how to make changes or write the file. We didn't have all the resources at out fingertips back then. Just the books. We couldn't find copy-and-paste hideous solutions on StackOverflow, we had to figure it out on our own. Programming had the air of wizardry. I do believe that nowadays it's much easier to learn the basics of programming, considering massive number of resources available just a few keystrokes away. On the other hand the expectations have changed a lot after programming went mainstream. In my line of work, before I became a consultant, I had interviewed a lot of candidates for web development positions. In my rough estimate only 2 out of 10 are cut out for it. And no wonder - the demand on the market is massive, the money is all right, so more people jump on the bandwagon and try to get by. They don't want to learn a great deal, they don't have a real interest in the domain. They just want to do the job as painlessly as possible and get paid good money. This also means, they have to cut corners. They don't have time to figure things out and build solid foundations. They are after quick results. They just want to become employable. The passion in our profession is hugely diluted, with the inflow of people who want to do the job just because it pays nicely. It's pure economy. And because it is economy, the expectations have changed. Maximising return on investment, where the time spent on learning something is the investment, means that steep learning curve is no good anymore. So maybe let's not dwell on how hard it is to become a programmer these days. In my view it's definitely harder to stay one, than to become one, with everything changing so fast. However becoming a programmer is not more difficult today than it was 20 years ago.
- godot 9y agoI think you are agreeing with sametmax's point actually. It's not "the learning curve of getting an environment setup" generally, it's more that the specific environment you're thinking about, which is part of your presumption in this statement, is harder. It is in fact extremely easy to get an environment setup if you're talking about basic Javascript and the browser -- there is no change in this from 20 years ago. You open up Notepad, type some HTML in, include a script tag and some alert("Hello world"); code in there, then double click the html file to open it on the browser. You do the same thing whether you're on Windows, Mac, or Linux. It will just work; there is nothing to install. The harder stuff is setting up a python backend to start your first web application, or creating that SPA with responsive design like sametmax said -- that stuff is the "expectation" now in modern day applications. Because the expectation is set so high, setting up the envs to make those things is harder.
- xstartup 9y agoPerhaps you are on a wrong platform? pacaur -S rust pacaur -S visual-studio-code-bin Then I start coding.
- gameswithgo 9y ago>We have Python, Ruby, Javascript... We have the Web as a platform Can you explain how any of those things makes learning programming easier?
- mappu 9y agoA generation ago, many (most?) apps were C++ for Win32. That means wndprocs, LPARAM, pointer casts everywhere. No STL, buggy templates. Dialog resources, manual layout of controls. Build the app for both * A and * W, ship unicows for win95 support. Crashes on machines without IE4. A lot of that was just incidental complexity and is covered up now.
- ghayes 9y agoPlus, it's really nice having a REPL.
- tonyedgecombe 9y agoA generation ago, many (most?) apps were C++ for Win32. I think there was far more VB being written than C++, at least at the sites I visited.
- root_axis 9y agoThey are easier to get started with for several reasons. 1. Automatic GC means new programmers don't have to understand memory management or concepts like pointers up front. 2. Dynamic typing does not demand type declarations or throw type errors so it lets new programmers get up and moving quickly without having to appreciate the purpose and benefits of a type system. 3. No compiling means faster builds so newbies become less frustrated with errors and debugging. Users will also avoid dealing with cryptic compiler errors. 4. The dependency management and module systems for these languages are easy to use and don't require an understanding of header files or object linking in order to get your program to build or run in other environments 5. Package managers with tons of free open source code that are easy to discover, install and use immediately.
- 9y ago
- shakna 9y ago> The hello world has never been easier to do. We also used to have BASIC pre-installed on a lot of different systems, and were able to write a GUI just by writing to the frame buffer directly. A helloworld was just: 10 PRINT "Hello, World!" I learned to program in BASIC, with just the on-disk manuals. I can't say that it's easier today - I didn't need anything extra back then, and had a snake game up and running in a couple days from never knowing programming. Today, we don't even have access to an unbuffered get_char by default, and you need to either modify how the shell is running or reach for a heavy library.
- mwcampbell 9y ago> were able to write a GUI just by writing to the frame buffer directly. And, among other problems, that GUI was inaccessible to people with disabilities, e.g. blind people or people who need to use an alternative input method. It probably wasn't internationalized or as good-looking as today's GUIs either. In the words of Billy Joel (in the song "Keeping the Faith"), "say goodbye to the oldies but goodies, cause the good old days weren't always good, and tomorrow ain't as bad as it seems."
- protomikron 9y agoI think while True: print('Hello, World!") is not that much worse. Granted you have to launch a shell first. Obviously the programming stack got more complex and users' expectations got higher (which is a good thing), so it is more work to make a program that is useful. But the things that have been simple then are still simple today - they are just not popular anymore or not installed by default.
- readams 9y agoexcept with BASIC you turned on the computer and literally the first thing you saw was a prompt where you could type your program. The whole point of this article is that downloading and installing python to the point where you can contemplate typing your program is a big barrier.
- fragmede 9y ago
- psyc 9y agoThe article is specifically discussing the ease of getting into an IDE on a new PC. When I started, I could turn on the PC, type “basic”, and press enter. Now, at minimum, I would need to know to start notepad, save an html file, point a browser at it, and type some html and js boilerplate. That’s what the article says is harder (except the article goes on to discuss installing other languages, which is even harder).
- rtpg 9y agoFor many people in the 90s, trying to program a "game" or anything like that often involved C++. Try figuring out programming _and_ linking libraries you have to download off the internet (all before we had the kind of resources we have now). The IDE wasn't enough, you needed to set a bunch of stuff up. And using any GUI? OK now you're learning Win32. Sure, maybe it was easier to write the "number guessing game" in a text window. But only barely.
- psyc 9y agoThis is an extremely bad characterization of how far people went with BASIC.
- xstartup 9y agoI disagree. We currently have 5 SaaS companies. We are finding that we are writing lesser and lesser code. Most of our services have 300-500 lines of code and a product is composed of 5-6 such services. We've not found any difficulty in selling it but yea some niches are crowded with tons of competition. I do both backend and frontend for SaaS at my company.
- PricelessValue 9y ago> The hello world has never been easier to do. Agreed. The hard parts of programming have been removed ( especially for entry level people ). > We have communities and cheap, fast computers. And online tutorials ( youtube, coursera, etc ). Learning to program today is much easier than just 10 years ago. Not only that, the setup to start programming today is much simpler. Not only does almost everyone have a computer, there are IDEs/programming suites available that eases you into programming.