Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Programming

'Real' Programming Is an Elitist Myth (wired.com) 283

When people build a database to manage reading lists or feed their neighbors, that's coding -- and culture. From an essay: We are past the New York City Covid-19 peak. Things have started to reopen, but our neighborhood is in trouble, and people are hungry. There's a church that's opened space for a food pantry, a restaurant owner who has given herself to feeding the neighborhood, and lots of volunteers. [...] It's a complex data model. It involves date fields, text fields, integers, notes. You need lots of people to log in, but you need to protect private data too. You'd think their planning conversations would be about making lots of rice. But that is just a data point. The tool the mutual aid group has settled on to track everything is Airtable, a database-as-a-service program. You log in and there's your database. There are a host of tools like this now, "low-code" or "no-code" software with names like Zapier or Coda or Appy Pie. At first glance these tools look like flowcharts married to spreadsheets, but they're powerful ways to build little data-management apps. Airtable in particular keeps showing up everywhere for managing office supplies or scheduling appointments or tracking who at WIRED has their fingers on this column. The more features you use, the more they charge for it, and it can add up quickly. I know because I see the invoices at my company; we use it to track projects.

"Real" coders in my experience have often sneered at this kind of software, even back when it was just FileMaker and Microsoft Access managing the flower shop or tracking the cats at the animal shelter. It's not hard to see why. These tools are just databases with a form-making interface on top, and with no code in between. It reduces software development, in all its complexity and immense profitability, to a set of simple data types and form elements. You wouldn't build a banking system in it or a game. It lacks the features of big, grown-up databases like Oracle or IBM's Db2 or PostgreSQL. And since it is for amateurs, the end result ends up looking amateur. But it sure does work. I've noticed that when software lets nonprogrammers do programmer things, it makes the programmers nervous. Suddenly they stop smiling indulgently and start talking about what "real programming" is. This has been the history of the World Wide Web, for example. Go ahead and tweet "HTML is real programming," and watch programmers show up in your mentions to go, "As if." Except when you write a web page in HTML, you are creating a data model that will be interpreted by the browser. This is what programming is. Code culture can be solipsistic and exhausting. Programmers fight over semicolon placement and the right way to be object-oriented or functional or whatever else will let them feel in control and smarter and more economically safe, and always I want to shout back: Code isn't enough on its own. We throw code away when it runs out its clock; we migrate data to new databases, so as not to lose one precious bit. Code is a story we tell about data.

This discussion has been archived. No new comments can be posted.

'Real' Programming Is an Elitist Myth

Comments Filter:
  • by Anonymous Coward
    Since when is a "fake programmer pep talk" news? Look in the background of the mirror, you can see the shelf full of participation trophies too.
    • If you get a computer to do what you want it to do, Then that is real programming. However there is a difference between good programming and bad programming.
      I can hit a ball with a bat. But I am nowhere close to be considered a good Baseball or Cricket player.

      • Often different tools used by the novice and the "real programmers" but an analogy might be to compare grammar and word choice between say a second grader and an english lit major at a good university. Both are speaking english, just one's better able to express themselves. End of the day though if it solves the problem in a way that the user's happy with who cares? Sure when the simple CD collection Access db falls over or becomes the next imdb you might need to get a more skilled person in there to redo i

        • by skids ( 119237 )

          Sure when the simple CD collection Access db falls over or becomes the next imdb you might need to get a more skilled person in there to redo it.

          This has been the only source I have seen of disdain for such apps, not nervousness that "real coders" aren't needed. Real coders have plenty of other work to get on to, they aren't terribly worried some MSAccess database is going to replace them. They are more worried that they'll be tied up in a migration project that brings that MSAccess application -- if you can bring yourself to call it that vs a rube goldberg contraption -- to scale. Because that's an ugly grind and you don't end up with an especia

          • The thing is for a lot of things it works till it doesn't. They might have got years of use out of that Access app that's what justified it. The receptionist cobbled it together in her idle time and it suited the business need. Then 4 other departments heard about it and they all want to tie into it and run ad hoc reports etc. Now it's a new more complicated business need: enter the professional programmer. I don't feel my skills are wasted when I do that. Not the majority of my work, but ultimately I'm get

        • by Cederic ( 9623 )

          when the simple CD collection Access db falls over or becomes the next imdb you might need to get a more skilled person in there to redo it

          "It keeps falling over. You're the IT team, support it!"
          "It only took me four days to write, how can it need a $400k project for you to replace it?"
          "Data security is your job, not mine."
          "Why does every department produce different figures for the same data point?"
          "I don't care if you wrote it, we need it back working today! This is costing us money!"
          "He's on holiday! We can't get hold of him. Please, help us out here."
          "So you mean we've been sending the wrong figures to the FCA for three years?"
          "What do you

    • Is that supposed to be a pep talk? I thought the implication was that fake-coders who just click on frameworks can't even see real programming from their seats.

  • Mel ... (Score:5, Insightful)

    by psergiu ( 67614 ) on Wednesday August 19, 2020 @10:52AM (#60418329)

    Mel Kaye of Royal McBee Computer Corp. would like to have a friendly chat with you.

  • by AcidFnTonic ( 791034 ) on Wednesday August 19, 2020 @10:54AM (#60418335) Homepage
    You talk about making some cheap way for someone to do their own dental filling and suddenly the dentists are all uppity about what "real" dental work it. You talk about letting someone drop a few boards over a ditch, and suddenly civil engineers start talking about what "real" bridge building is like. You give me an instant cake mix and suddenly bakers start talking about what "real" baking looks like. You can insult any highly technical craft by erasing 90% of the craft and letting newbs do 1 single cool looking thing.
    • by jellomizer ( 103300 ) on Wednesday August 19, 2020 @11:35AM (#60418497)

      Quite true.
      Most crafts have enough tools for beginners to get them to 80% perfection almost immediately.
      Getting form 80% - 90% then takes decades of practice and honing of skills.
      Also when you get to the professional tools, you often need to take a step back before you can take 2 steps forward.
      I can take a good picture off my Phone that is in focus and sharp. If I am given a professional camera, chances are my photos will be blurry and not as good. Because I will learn on how to focus and use the camera to get what I want. And If I wanted to be a professional in that field, I may want to focus things differently than what Apple or Samsung AI thinks I should be focusing on. For example I may want the Baby in the foreground to be fuzzy because I wanted the attention towards the deer in the background, or focused on a single flower.

    • by bugs2squash ( 1132591 ) on Wednesday August 19, 2020 @12:21PM (#60418723)
      There was a cartoon posted on the wall of my local plumbing supply store (the one the local contractors used). It showed a plumbing disaster and a contractor speaking to the home owner. The caption was something like "..and thanks again for trying to fix it yourself before you called me".
    • “People of the same trade seldom meet together, even for merriment and diversion, but the conversation ends in a conspiracy against the public, or in some contrivance to raise prices.” - Adam Smith

    • I'm not sure what's your point here, but it all makes sense to me. In each of the examples, I can totally see why the "real" thing is important. A bad filling can cause severe health issues. A bad bridge can cause you to fall (and die). A badly protected database can cause personal data leak which is also a lot of trouble. So it all makes sense to tell people that although it could work fine (even for a long time), there are also good reasons why you'd want to ask a professional.

      Now in my opinion, there ar

    • by skaralic ( 676433 ) on Wednesday August 19, 2020 @03:22PM (#60419461)
      You talk about letting Anonymous Coward post on Slashdot and suddenly all low-digit accounts are all uppity about what "real" commenting is.
  • by sideslash ( 1865434 ) on Wednesday August 19, 2020 @10:56AM (#60418349)
    A little nuance is needed here. If you hire a professional contractor to build you a tree house, the result will differ from a very amateur homemade one. The pros use better tools and materials, and typically have better ideas about how to put stuff together based on years of experience.

    Similarly here, I agree with our dear ranter that the idea of "programming" can encompass a wide swath of problem solving on a computer. However there are good reasons why professionals use the tools they use. That said, as a professional I don't hesitate to advise a client during the estimation process if I think they can do it themselves with a simpler approach and save money. There's nothing wrong with that.
    • Imagine life before Dan Bricklin invented the spreadsheet. We're in exactly the same position now with these simple-yet-powerful cloud computing tools. We're making progress, folks. We're taking the simple things, automating them, and freeing ourselves to work on much harder and much more worthwhile tasks.

      Do you really want to spend the rest of your career coding data structures so simple that an ordinary person could specify them just by filling out a simple form? If so, you're probably on the wrong end of

      • by sjames ( 1099 )

        Do you really want to spend the rest of your career coding data structures so simple that an ordinary person could specify them just by filling out a simple form? If so, you're probably on the wrong end of this business.

        Of course not, but that doesn't make filling out the form to auto-generate those structures "real programming'. It may very well be good enough and the right thing, but it isn't real programming. And so, doing that does not make you a programmer.

    • The problem with using tools like Access is that while for the non-coder, they may solve a limited problem, I've seen way too many occasions when it isn't the flower shop owner building a homebrew inventory system that suits them just fine, but rather some bubble gum pasted together Access or LAMP program that sorta kinda works and then gets picked up and pushed way beyond the limits of the amateur developer to handle.

      The biggest contract I ever had during my time as a contractor was a PHP program for a saw

    • by chill ( 34294 )

      To add a little perspective, if I hire a professional contractor they have a license issued by my State governing board and have had to prove a certain level of competance, education, and experience.

      Last I checked, there was no equivalent for programmers. "Professional programmer" just means someone who managed to get paid for doing some code at some point.

    • Both are "real programming" in that they involve understanding the user needs and writing code to solve it. The difference is in the scope of the project and whether it's a one- or two-person job or requires a bigger team. One-person jobs are easy in that you don't need any documentation or standards. Once you need a bigger team, the code needs to be understandable and documented.

      It's even harder if you expect the team members to change over time as people leave and join the team. Asking the code to work fo

  • Yes, but ... (Score:3, Informative)

    by hattig ( 47930 ) on Wednesday August 19, 2020 @10:59AM (#60418357) Journal

    Creating a data model may be one aspect of programming, but it isn't all programming.

    Designing a form may be one aspect of programming, but it's not the be all and end all of programming.

    Both of the above when it comes to building a tool upon a database can be considered configuration or setup. Meta-programming - the workhorse engine is underneath, you are merely settings its parameters and interface.

    And they are valuable and useful - at least until the entity that created them grows too big and runs into scalability issues and so on - but that's a good problem to have, and hey, maybe it's just a bigger payment to scale up on the same platform now. And if you got something that isn't your core startup business idea working quickly and good-enough, then great, more time to spend on your core business.

    when you write a web page in HTML, you are creating a data model

    No, you are creating data within the HTML data model that the browser understands. You are creating data. That data is actually 'real art' or 'real writing' of course, if we have to determine which work is 'real' here. It's not programming. Javascript is programming of course.

    Anyway, historically real programming was assembler or C, and "non real programming" was BASIC or various game creators.

    The only real point made is that data is what is valuable overall, not the programs that create it, modify it, transmit it and so on.

    • by Ostracus ( 1354233 ) on Wednesday August 19, 2020 @11:08AM (#60418397) Journal

      I remember when it was spreadsheets as adhock programming. Now it's the cloud, and all the complexity hidden behind that.

    • Creating a data model may be one aspect of programming, but it isn't all programming.

      Designing a form may be one aspect of programming, but it's not the be all and end all of programming.

      I do those on notebook paper before I even start programming. It is either that stuff called "architecture," unless you're using a framework. Then it is just a data model. If you're writing the framework, or not using a framework, then it is architecture.

      They're not even talking about the programming. The projects they have in mind might not even require programming.

    • Javascript is programming of course.

      Found the Javascripter

  • by Doub ( 784854 ) on Wednesday August 19, 2020 @11:02AM (#60418375)

    You set up a couple of tables in a database, you write some HTML, and you think you've got it figured out. But it's precisely because you know so little that you don't realize how much you don't know. This is the bottom end of the impostor syndrome, and it shows in every domain and statistic about skill or intelligence.

    The elitists are the ones sneering at programmers because they too can write some HTML. It's the ones sneering at farmers because they too can grow some basil on their balcony. It's the ones sneering at the construction industry because they too can assemble their Ikea furniture.

    • by Thud457 ( 234763 ) on Wednesday August 19, 2020 @11:16AM (#60418425) Homepage Journal
      Do you want a visit from little Bobby Tables?
      Because that's how you get your tables bobbed.
    • If I had a dollar for every time a user who once changed the toner in the office copier told me how to do my job I wouldn't have to put up with them any more.

    • Dunning-Kruger (Score:5, Insightful)

      by XopherMV ( 575514 ) on Wednesday August 19, 2020 @12:58PM (#60418875) Journal
      This whole conversation screams of Dunning-Kruger. The amateurs possess so little knowledge and experience that they don't know the whole field of knowledge that the professionals have studied and worked in for years and decades. The amateurs learn one little thing and think, "oh, this is easy - everything must be this easy." The amateurs then exude this overwhelming confidence that they'll verbally attack the professionals and mock the entire industry.
  • by Brooklynoid ( 656617 ) on Wednesday August 19, 2020 @11:05AM (#60418385)
    ...about every low-code/no-code development tool that's come out in the past 30 years. As the original poster notes, the results are amateurish, and in nearly every example I've seen, the functionality (without additional code) is so basic as to be nearly useless. Is it good enough for a dog walker to track their customers and appointments? Yeah, probably. If it turns out to be not good enough, will the dog walker be paying me six figures to build something that is good enough? Probably not. As long as I keep myself current on new technologies, I'm confident that I'll be as busy as I want to be until I retire.
    • So you did not see/try Hypercard and its "siblings".

    • and in nearly every example I've seen, the functionality (without additional code) is so basic as to be nearly useless. Is it good enough for a dog walker to track their customers and appointments? Yeah, probably

      That's literally the opposite of useless. Not everyone needs something huge and scalable.

  • by redmid17 ( 1217076 ) on Wednesday August 19, 2020 @11:05AM (#60418387)
    It's not coding unless you use code. It's literally in the word

    It's definitely solution design and implementation. Good for those people.
    • That is wrong.
      everyone doing MDSD/MDA etc. will disagree.

    • Coding is a lot bigger than a code window in Emacs. A lot of modern development is about creating glue between pre-packaged components; linking libraries and pre-built objects together, using a web framework as the UI with whole loads of pre-built libraries to define lists, input boxes and the like. I can actually build a pretty modern application with JQuery, web framework and database, where the coding is actually, at least on a byte-measure, the smallest part about it. But, like building a car from a kit

  • I call bullshit... (Score:5, Insightful)

    by dark.nebulae ( 3950923 ) on Wednesday August 19, 2020 @11:08AM (#60418393)

    As an elitist developer, I can't tell you how many times I get called in because some fool was able to use a no-code or low-code tool to create a "database with a form-making interface on top" that does the simple thing like tracking the cats at the cat shelter.

    But they need to augment it with logic like "don't sell black cats in october" and other real business rules, but they can't figure out how to do this in the tool and they're just looking to have someone add it in.

    Then you have to hit them with the "well your tool doesn't support that, I need to rebuild it as a proper application if you need that kind of thing" response and all of a sudden you're an elitist coder looking down on these types of tools.

    There's a reason that FileMaker and Microsoft Access are gone. People realized that sure, you can spin up a basic app on these tools, but they couldn't offer all of the advanced options that real programs take, and even for those more complex apps that could be built on these tools, it still required an experienced developer to make that happen.

    Sure, "HTML is real programming" will get rankles up because, well, no it isn't. You think that Slashdot or Wired or any of the other websites you see are just a bunch of HTML strung together and that sure doesn't require a programmer to build that. Heck, most modern website tools now allow you to create content pages using WYSIWYG editors and HTML is all but gone.

    Except a site isn't just its HTML any more. There's complex CSS and sometimes SCSS/SASS which manage the styling. And an even bigger part is the Javascript that makes it all interactive and flowing and usable. You're not going to sit at your desk and crank these out like you might with HTML unless you're a programmer.

    So yes, call me an elitist for laughing at these new no-code and low-code options. Because I do laugh at you for choosing a tool like them for any real world application. I know that the proof of concept that you're building is not going to be able to deliver on 100% of your demands, so you're either going to be left with doing without or paying me to rebuild it as a real application.

    • by JBMcB ( 73720 )

      There's a reason that FileMaker and Microsoft Access are gone. People realized that sure, you can spin up a basic app on these tools, but they couldn't offer all of the advanced options that real programs take, and even for those more complex apps that could be built on these tools, it still required an experienced developer to make that happen.

      To be fair, FileMaker and Access are still around, and I know a lot of people who use them. There are corner cases where you need something more powerful than a spreadsheet, but not nearly as powerful as a full featured programming language, and you want it done quickly.

      Case in point, my family's small store runs an inventory system in Access. It does exactly what they need it to do, interfaces nicely with their POS, and it hasn't been significantly modified in years.

      The flip side of that is an acquaintance

      • by dark.nebulae ( 3950923 ) on Wednesday August 19, 2020 @11:41AM (#60418533)

        Rarely is IT responsible for deeming what to work on and what not to work on.

        Those decisions are typically based on cost/benefit ratios, ROI and best use of limited resources.

        It is easy to say "IT doesn't care about my HR project", but in reality it is the business saying that dedicating limited resources to a project which has limited or no return in order to replace a system that, although has problems, is working, well that is just not the best use of resources.

        There is also a reason that IT doesn't allow users to use Access or SmartSheet or any of the other "do it yourself" tools. When they are allowed (or if they just do it), departments will spin up a limited solution that works to address a single issue of theirs without any thought to information security, governance requirements, backup and recovery, integration with other departments, etc. So the solution built off of Access might have seen like a good idea for the department that couldn't financially justify the investment in a real app, all of a sudden becomes a burden in the company when the guy that built the Access app leaves or the data is needed by another department or the company gets audited or ...

        It is much easier to handle these kinds of nightmares from occurring by preventing them in the first place.

        I'm glad the Access inventory system is working for you, but I would bet it also limits you too. I'm guessing it is missing capabilities like XML data import/export, web service endpoints for B2B integration, electronic fulfillment or replenishment, etc. And those kinds of facilities are likely not necessary for a small business shop dealing with local customers.

        You might find, however, that you'll face problems moving to online sales or opening a new store or franchising the business or any number of business growth exercises.

        • Mod parent up, +2 Nailed It

        • It is much easier to handle these kinds of nightmares from occurring by preventing them in the first place.

          Maybe you only see the failures and are thus not getting an accurate picture. I've seen MS-Access handle smallish apps just fine. Just have a script running that backs up the data file daily or even hourly.

          If it gets corrupted once a year and there's an hourly back-up, many shops are okay with redoing an hour's work occasionally rather than pay for a costly "big stack" dev team and DBA's. If you do the

    • I can't tell if this is satire or not.

    • Ugh, but that's not the POINT.

      Of course I can do a better job than somebody that doesn't do this for a living. A contractor can paint a room better than me, too. Or install drywall better than me. It doesn't mean that when I do those things it's not 'real' painting or construction. It just means that sometimes you can get by with less skill and weaker tools. Nobody tells me it's not 'real hammering' when I use the shit I have in my apartment to hang a picture, and it would be asinine to call a professional

      • by Shaitan ( 22585 )

        We aren't talking about drywall, we are talking about structural building, foundation work, plumbing, electrical, etc. Coding is no dark and mysterious elite club which only PhD grads may approach.... is it is an easily approached and highly public field with really no need for college grads at all just intelligent people.

        If you aren't making use of the information available, either because you are too lazy or not bright enough, you are going to build broken solutions that cause problems and with tools like

        • No we're NOT. We're talking about PROGRAMMING.

          It's not ONLY programming when you're building something structural, or even something GOOD. I've written plenty of bad, throwaway software for my own use over the years and it doesn't mean it wasn't programming. It doesn't matter if the program only serves a purpose one time and you delete it immediately afterwards. Have you never written a script that only needed to exist for literally ONE task and then gotten rid of it? I have. Dozens of times. It was program

  • by ardmhacha ( 192482 ) on Wednesday August 19, 2020 @11:08AM (#60418395)

    Unless you are setting the 1s and 0s yourself it is not real coding.

    • It sounds good, but you might still just be telling an assembler what bits to flip without using mnemonics.

      You can get an FPGA and set it up so it lets you flip the bits yourself, but what the heck are you going to do about switch bounce? Are you gonna let some wimpy capacitor stand between you and your programming?

  • "Real programming" along with real architecture and design results in applications that are scalable, flexible and cost effective to maintain over many years. They also manage data in a consistent way that can be leveraged by other apps and users and merged with other enterprise data to provide greater insights. Small DIY projects don't require this so yes, they don't require high level skills to implement. You can do so-so UI's without a high level skill set also if the UI is effectively decoupled from
  • by werepants ( 1912634 ) on Wednesday August 19, 2020 @11:13AM (#60418415)

    Sure, some coders are snobs and will look down their noses at people for doing anything other than low-level assembly. Other people look at ever-higher levels of abstraction and see that it makes new kinds of computing tasks approachable for a greater number of low-skill users who are solving problems that aren't worth paying a developer for.

    "Real" coders, though, aren't remotely threatened by this kind of thing, because they understand that the actual challenge of building code isn't just making something that puts a few numbers together - that can be easily accomplished by anybody with time, the will, and basic competence with search engines. It's making something that is scalable, extensible, performant, reliable, testable, documented, and *maintainable*, and people who can write software that fulfills those needs are perpetually in short supply. Whether it is Excel, HTML, or some new-fangled database GUI, all of those user-friendly tools fail utterly at any of those factors.

    So, the author can dismiss full-time coders as elitist snobs if he wants... in the meantime, people who understand the *actual* challenges of coding will continue to enjoy fat salaries and will lose no sleep whatsoever about the latest, greatest spreadsheet replacement. MS Excel gurus are the only ones that need to worry about their skills being superseded here.

  • Losers. (Score:5, Funny)

    by grub ( 11606 ) <slashdot@grub.net> on Wednesday August 19, 2020 @11:16AM (#60418427) Homepage Journal

    Anyone who does not code in pure assembly language for the relevant processor is lazy and not doing real programming.
  • So many programmers do not understand basic relational database theory, and consequently reinvent the wheel, badly, repeatedly. And sure, itâ(TM)s great to know how to build horizontally scaleable replicated applications using kebernetes and istio when you are building the next Instagram. Most people are not doing that. But they ARE doing things that are beyond the ability of their overused And abused spreadsheets. Access and other similar desktop databases have been out for decades, and still, the
  • by jellomizer ( 103300 ) on Wednesday August 19, 2020 @11:17AM (#60418431)

    With this set of equipment you can fix most of your home repairs.
    Often it wouldn't last as long, wearout further to a point of no repair, and doing the fix is much harder than it could be.

    These "Fake Languages" that can make programs without coding, I see are often like these basic home repair tools. They will often get the job done, but probably not as well as you really deserve.

    I am always fighting at work when I find a non IT department using Access to get a business process done, vs using an Enterprise Database. Here is the problem, it isn't elitism or that they are bad for using the product. But to the point product development will often reach to a point where such tools hit their limit, and you have to be more creative and rig up ever more methods to get you next process to work. Vs a method that allows for Coding Methodologies in which you have access to a lot of core functionality and build off of them to do more complex things, vs. Using Complex things, to get them to subtract from each other to get something that seemed simple done.

    I often find these departments are using Access when they really messed something up, and the process that they wanted to get done is approaching a deadline.
    A corrupt Access Database because 100 people are using that Database at the same time. A PC upgrade say from 32bit to 64bit had broken a 20 year old 3rd party Active X control. Needed to export to a new data format, Trying to automate a process....
    These tools are meant for the quick fix, "disposable" programs that you might use for a few months then delete. School Projects, A short term business initiative. However they are often used for decade running mission critical applications, setup behind the back of those Elitist IT Guys to justify not having to pay for IT services, only to have it at some point go critical to a point where repair is difficult or impossible. While the Services built with the "Real Tools" still may have problems, but they are often much quicker fixed and when they are they are better than they were before.

    I had my lawnmower had the plastic behind the wheel break in which it was hitting the back of the wheel making grating noise. So I used my Multi-Tool to file off the sharp edges, Duct Tape to put it back together, and then I put some WD-40 on the wheels that was squeaking. That fix has seemed to work well. and hasn't been an issue for years. However I had a hook in may garage that I use to hold reusable shopping bags. It fell, So I put it up and put some duct tape to hold it there, it lasted a week and it fell off again. So I used a Miter Saw, a Router (for wood), some wood glue, screws and some spare wood. To create a new hook that I had mounted properly, and hasn't fell off and is just as sturdy as the day I mounted it.
    Sometime the quick and easy fix is fine, other times it is just delaying future problems.

  • by unfortunateson ( 527551 ) on Wednesday August 19, 2020 @11:18AM (#60418433) Journal

    The subject line above abbreviates Larry Wall's motto for Perl: "Make the easy things easy, and the hard things possible."
    There's of course plenty of room for debate as to how well Perl made much of anything easy, but as a long-term IT guy, I've seen generation of generation of low-code/no-code systems fail at the second part: you just plain run into a wall, which *might* be climbable but often isn't.

    The newer systems are definitely better: Salesforce's Lightning provides enough hooks that the hard things are possible, but it's a sharp learning curve.
    But programming has changed significantly since I first played with MUBAS on a PDP-11/03 and TRS-80 Model 1's: User interfaces are a lot more complex than 80x24 (or less) text (although almost universally based on HTML/CSS now). Databases are more powerful.

    And we've been encapsulating functionality: is calling from libraries and object models that different from low-code systems? I look at a Macintosh System 5 event loop, to an Excel VBA script to Ruby on Rails to Lightning and you've got a pretty steady progression.

  • by stdarg ( 456557 ) on Wednesday August 19, 2020 @11:21AM (#60418443)

    We throw code away when it runs out its clock; we migrate data to new databases, so as not to lose one precious bit.

    We throw away data when it runs out its clock too. We migrate programs to new computers.

    Code is a story we tell about data.

    Great example of something that sounds poetic but is nonsense. Metadata is the story we tell about data. Code is stuff that acts on data. It's what's telling the story perhaps.

    What is this "essay" if not just an attempt to be divisive for no reason? I don't think many "real" programmers fail to understand how important data is. And not many people would support calling "real" programming an elitist myth either. If filling out a form and letting a program that someone else wrote take that data and do something like show a GUI makes you a programmer, then I guess just speaking plain English and instructing another person to do something makes you a programmer as well. It's devaluing the established, if fuzzy, concept of programming and in typical progressive fashion simply makes the word less useful.

  • HTML is programming? (Score:5, Interesting)

    by Dan East ( 318230 ) on Wednesday August 19, 2020 @11:24AM (#60418455) Journal

    This guy gives two examples: basic databases, and creating an HTML page, and uses that as the example of all software development? So is he asserting that the creation of Windows, Linux or OSX is the equivalent to that in some way? Any modern console game can be developed in the same way?

    Except when you write a web page in HTML, you are creating a data model that will be interpreted by the browser. This is what programming is.

    What?? No, that is not a data model. The HTML specification can be considered a data model, and thus the HTML page is the data. However, in any case, HTML is not Turing-complete (sure Javascript is, but HTML is just data), and so the creation of an HTML document is not "programming". No more than a person typing a document into Word or an artist using Photoshop is programming.

    This article is pointless. Apparently the author thinks doing *anything* on a computer is programming. There, I just programmed a Slashdot comment.

  • by michaelmalak ( 91262 ) <michael@michaelmalak.com> on Wednesday August 19, 2020 @11:25AM (#60418463) Homepage

    The desire and the promising technology of end-user programming (EUP) got off to some false starts that were wiped out by the WWW:

    1. 1. Microsoft Access
    2. 2. Lotus Notes
    3. 3. Hypercard
    4. 4. VB6

    Actually VB6 is still #20 on TIOBE, despite nearly two decades of Microsoft trying to kill it.

    Regarding Microsoft Access, I suspect it would be in the top ten of development environments if it simply didn't crash and mangle data when it got above 100,000 records.

    But the common thread amongst all four of those technologies is that the web obsoleted them. Perhaps now that the dot-com tornado has passed, we can get back to building the dream of EUP.

  • by measterbro ( 3578187 ) on Wednesday August 19, 2020 @11:25AM (#60418465) Homepage
    because you can go to Wal-Mart and buy a paint-by-number picture
  • by 1s44c ( 552956 ) on Wednesday August 19, 2020 @11:29AM (#60418477)

    Programming is 90% insulting programmers who use other languages, tools, or use the same tools in different ways. Programming is full of elitist and opinionated people, and it's still more alchemy than science.

    Programmers seem to believe that because they are well paid they are professionally qualified in much the same way as a surgeon or a chemist. At best they are carpenters who keep arguing about which screwdriver they should use as a chisel, which brick to use as a hammer.

  • by allcoolnameswheretak ( 1102727 ) on Wednesday August 19, 2020 @11:32AM (#60418485)

    This article is frowning on "elitist coders", but only makes the mean-spirited case that those coders are elitist out of arrogance and self-preservation.
    Unfortunately, whoever wrote the article doesn't really know what he's talking about.
    As any good software developer knows, there are orders of magnitude of difference in productivity/efficiency between a poor developer, average developer, good developer and "elite" developer. Being "real" developer is a -real- thing, and you can't become that by writing HTML and using a form designer for data access.
    Some things that distinguish "real" good developers from poor ones or from "designers" are the following abilities:

    * How to write logic in a concise and structured way, using modularity and separation of concerns, encouraging simplicity and reuse.

    * Knowing when and how to use functional paradigms to achieve the point above, and knowing when not to.

    * How to design and implement a global application strategy with a concept of life-cycles, dependency management, logging, persistence, security, data access... and whatever else is significant in the context of the application.

    * How to do proper exception handling by having a system and strategy in mind in how to deal with errors instead of handling here and there and on the spot, as feels right, without any concept.

    * Have an good knowledge of software libraries and tools to support with all of the development process, from not rewriting existing logic to debugging and profiling tools.

    * Know the difference, pro's and cons of different programming paradigms such as OOP and FP or static vs dynamic typing.

    This is just a short list of what immediately comes to mind. These are the sort of skills that make a "real" developer and that you can only truly develop by practice and having a keen interest in software programming, so you read books, online forums, tutorials, best practices, as part of your lifestyle, to stay up to date and current on recent developments.

  • by humankind ( 704050 ) on Wednesday August 19, 2020 @11:34AM (#60418495) Journal

    "Real coding" is a thing.

    Nowadays people don't "code." They learn to use "tools."

    Just because you know how to use a hammer and a saw, doesn't mean you can build a great house.

    With the advent of Java, basically a corporate computer language more than it actually was invented to solve particular problems, the programming industry has become commoditized and turned into marketing and business more than design and creativity. Computer languages used to be "tools" as well, and people weren't loyal to particular languages. They chose the right tool for the right job, and "real coding" was being smart enough to know what resources you need to accomplish which tasks. There aren't many of these real coders around anymore, so perhaps it's only a "myth" because we so rarely encounter them?

  • as long as it's black.

    Like many "Elitist Coders" here I recognize that there is a lot people can do with low or no code tools, but you're not going to get all the features/capabilities you want or need.

    A few years ago our marketing company pushed us into using their web developer, whom they thought was a genius coder. It turned out that all he could do is WordPress web pages with a limited set of plug ins he had paid for. We very quickly devolved into a routine where we would present wireframes, the web d

  • There's nothing wrong with programs like Microsoft Access or Code Blocks, they have a very real function to complete "light on requirement" jobs, and that's fine. Would you consider this a form of "real" programming, I would argue no because you're not really programming, you're telling another system to generate the "program" and you don't get a lot of say in how that program is generated.

    Flipping the scenario, what about a developer writing a program in C with a GTK or HTML Frontend, would this be "real" programming? Depends if you're a developer who is a library junky who band-aids libraries together to get a task done, vs one who crafts the majority of the logic and use the libraries to asset and help.

    The simple definition of a "real" programmer would be a developer who writes, understands, and controls the code through the development cycle.

    This would make a library junky, not a "real" programmer, because they're not writing / understanding the code, they're pasting together other peoples code. This would make the person using Access not a "real" programmer because they're not programming any code, they're instructing another system to generate the code based on their inputs, with the possibility of some simple macros thrown in.
  • by reanjr ( 588767 ) on Wednesday August 19, 2020 @11:38AM (#60418519) Homepage

    Sure, if you choose to build in wood, you can make useful things. And wood is easier to work with than metal. And some things - like a log cabin - are probably better when made out of wood.

    But you're never going to build a skyscraper or car out of wood.

  • There is a gap in tools for smaller applications that may not have a lot of users, but have fairly complex business logic. "Web stacks" are bloated these days, with each layer requiring specialists to use effectively. Things like ORM's, route mappers/url-pretty-izers, and Bootstrap are often difficult to get behaving like you expect. They are "organic". They often make 90% of coding easier, but when they don't work as expected you can spend many hours experimenting and googling to try to get them to do the

  • by aviators99 ( 895782 ) on Wednesday August 19, 2020 @11:44AM (#60418555) Homepage

    Hey, if this will get my elderly relatives to stop calling me to tell them how to "fix the Internets on their CPU" I'm all for it.

  • by Cipheron ( 4934805 ) on Wednesday August 19, 2020 @11:49AM (#60418569)

    The problem with the article's thesis is that it falls under the general rubric of Sorites Paradox or the Continuum Fallacy.

    For example, if HTML is programming because it causes the browser to display the desired fonts, layouts, colors and images, then so is using Microsoft Word. In other words you cannot draw a line in this discussion, and because of the continuum of states you end up at the logical conclusion that coding is "telling a computer what to do" no matter how basic the action.

    In a version of Sorites Paradox you start with a grain of sand, and ask if that's a mountain. If not, then surely adding one more grain of sand to a non-mountain doesn't turn it into a mountain, so it's impossible to create a mountain from grains of sand. But, clearly with enough grains of sand we can recognize it as a mountain. Mountains are a "I know it when I see it thing" even though you cannot specify exactly what point your ever-growing pile of sand counts as a mountain.

    It's actually similar with programming. There are a continuum of "computer actions" from the most basic to the most advanced, and there's no clear-cut line between non-coding actions and coding actions, but that doesn't mean that coding isn't a "I know it when I see it" situation, just like being able to tell a mountain from a pile of sand.

    The continuum fallacy (also called the fallacy of the beard, or line-drawing fallacy) is an informal fallacy closely related to the Sorites paradox. Both fallacies cause one to erroneously reject a vague claim simply because it is not as precise as one would like it to be. Vagueness alone does not necessarily imply invalidity. The fallacy is the argument that two states or conditions cannot be considered distinct (or do not exist at all) because between them there exists a continuum of states.

    So, the argument here is that there is no such thing as "real programming" because there exist more basic actions which are like programming. However not being able to define an exact line between two states doesn't actually prove that no distinct states exist. As I stated, the same argument allows you to prove by induction that merely being able to turn a computer on counts as programming.

  • by Nite_Hawk ( 1304 ) on Wednesday August 19, 2020 @11:53AM (#60418581) Homepage

    The CS industry is full of arrogance and fear. We derive so much of our collective self worth from the superiority of our code that we often lash out at anyone that we perceive might threaten it. It results in misogyny, racism, classism, and general toxic behavior. I say this as someone who spends a lot of time working on incredibly complex software. For us to grow, we must all learn to be humble and try not to let our fears and prejudices get in the way of improving ourselves, our code, and our world.

    Having said that, there's nothing wrong with saying that not every tool is appropriate for every job. You could dig the panama canal with shovels but there are demonstrably more efficient ways to do it. You wouldn't try to use excel to create a neural network. You wouldn't hand-code assembly to perform a one-time summation of a column of numbers. The hardest part of growing up is realizing that you can be ambitious and work hard to do your best and at the same time recognize that other ideas might be better than your own (especially in other contexts).

    • I don't necessarily think it's just efficiency. Systems built from off-the-shelf components shouldn't get hate because using them isn't "real programming". It can be more sensible to build something from proven parts than to try and create it yourself.

      However, that doesn't actually mean it makes sense to call using preprepared code "programming" either. If I was to come up with a definition that would fit for "real programming" here it would be that programming is using a computer to solve arbitrary tasks (

  • Lol, in this post, non thinking data entry people cope about their low status
  • Is not programming either
  • switch to COBOL and demonstrate their programming skills; we'll see if their code is still handling vital data and being relied upon by critical institutions decades later, like the code written by an earlier generation of real programmers in the similar end of the industry (the end that deals with reams of customer/user/inventory/financial data in databases and facilitates access on remote terminals).

    This argument is like people who glue toothpicks together for children's projects arguing that they're doin

  • Braces, sure, but semi-colons?

  • by gweihir ( 88907 ) on Wednesday August 19, 2020 @12:08PM (#60418649)

    Non-crappy coding is something not that many people can do. And if that is an "elitist myth", here are some more such "elitist myths" for you: Engineering can usually only be done well by actual engineers, writing can usually only be done well by actual writers, and brain-surgery can usually be done well only by actual brain surgeons. Sure, doing the crappy versions of all these is accessible to many more people.

  • And im proud of it. Itâ(TM)s nothing to be ashamed of. Do the elitist sports players feel bad for being, or trying to be the best? Heck no! They Are proud to be the elite in this field!
  • by Somervillain ( 4719341 ) on Wednesday August 19, 2020 @12:09PM (#60418653)
    A real chef wouldn't microwave a lean cuisine, hand it to you, and charge you $50/h to do so. A real chef may not even make the very tastiest food. The most successful chef may not make a steak precisely as well as a very dedicated enthusiast, but he/she knows how to run a business, make good food, keep a kitchen running, and follow proper safety practices. There are many factors to consider when labeling someone a good chef....not just how good their food tastes or how fast they can make it, but can they do it profitably...can the operate a kitchen continuously even when the chef is not around...does anyone get food poisoning? How much food waste do they produce? How clean do they keep their kitchen? (I'm not personally a fan of rodent feces in my food)

    The barrier to writing Java, for example, is about as high as the barrier to cooking. You can pick up the basics quickly and start to make cool things....but an inexperienced amateur cook could give you some severe food poisoning....and an inexperienced amateur can get your data leaked and you sued. The devious thing about programming is that a little knowledge is a dangerous thing. The node.js crowd can put out a REST service pretty quickly, often as fast as I can in Java....but I have 2 decades of experience and know how to security program and setup code so it is easily maintainable. Most node.js professionals I have worked with don't address security or maintainability or even validation as more than an afterthought. I've inherited node apps that were some of the most difficult apps to maintain I've ever seen, especially when you need to do routine upgrades and all signature mismatches are found at runtime, not compile time. It's not even all node.js or python's fault as much as it the fault of the type of people it attracts.

    Enthusiastic amateurs do enough to get the demo out...the problems don't arise until months down the road....and then that's when whoever hired them wished they had went with me. I cost more, sometimes I am not as fast, but I do things right. I've learned all the things not to do either from lots of reading or first hand mistakes. I know what it's like to maintain 5 and 10 year old code after all the original authors left. I know the pitfalls a novice wouldn't.

    Few things are more expensive than a cheap programmer. It's not elitism, it's long-term and financially sound thinking.
  • My Dad made a sign and hung it on his corkboard over his desk:

    Algorithms + Data Structures = Code

    I honestly can't be fucked to care if someone is putting those data structures together with a 'visual' language of some sort, it's still programming. Programming languages are just convenient abstractions. Writing code in C is just as much coding as writing it in assembly, or punching holes out in a card, or creating a program using breadboards and wires. If you're making a program using nothing but NAND gates,

  • "When people build a database to manage reading lists or feed their neighbors, that's coding -- and culture."

    No, that's stupid people misusing Excel.

  • These solutions are handy for a number of things but they don't scale, the implementations are riddled with bugs, and the autogenerated code under the hood is horrible.

    I've seen MS publisher spit out 10MB html files for a fairly simple webpage and access database routinely would choke and die when businesses in the 12,000 person town I'm from outgrew it.

    I'd throw most MS programming tools in this same category bug ridden and bloated.

    The real lie is that actual coding is that much more difficult... it isn't.

  • ....who couldnt code in the first place.

    Tearing down a fake wall and labelling it --- Don Quixote would like a word with you too.
  • by jd ( 1658 ) <imipak@ y a hoo.com> on Wednesday August 19, 2020 @12:18PM (#60418711) Homepage Journal

    Are the ones who meet the specification. The full specification, including reliability and security concerns.

    Where there are none, that is also part of the specification.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...