Ask Slashdot: Everyone Building Software -- Is This the Future We Need?
An anonymous reader writes: I recently stumbled upon Apple's headline for version 2 of its Swift programming language: "Now everyone can build amazing apps." My question: is this what we really need? Tech giants (not just Apple, but Microsoft, Facebook, and more) are encouraging kids and adults to become developers, adding to an already-troubled IT landscape. While many software engineering positions are focused only on a business's internal concerns, many others can dramatically affect other people's lives. People write software for the cars we drive; our finances are in the hands of software, and even the medical industry is replete with new software these days. Poor code here can legitimately mess up somebody's life. Compare this to other high-influence professions: can you become surgeon just because you bought a state-of-art turbo laser knife? Of course not. Back to Swift: the app ecosystem is already chaotic, without solid quality control and responsibility from most developers. If you want simple to-do app, you'll get never-ending list of software artifacts that will drain your battery, eat memory, freeze the OS and disappoint you in every possible way. So, should we really be focusing on quantity, rather than quality?
to design complicated software, CLICK HERE
Swift isn't going to make it so "anybody can write apps." That is something that's been tried for decades, with things like drag-and-drop programming. SQL was originally intended for non-programmers. It doesn't work, because the difficulty of programming isn't the syntax. The difficulty of programming is logic. You have to learn to think like a programmer, describe a sequence of steps, ask "what will happen in the user does.....X." You have to reasonably understand the if several things in a row are true, but the next one is false, then all of them are false (if anded together, but not if or'd together).
The logic of programming is why it's good for everyone to learn programming. If it helps people learn to think a little more formally, then it's worth it.
"First they came for the slanderers and i said nothing."
I think the quality is already crap. The most people we have, the better chance there is good programmer will flourish and produce something good. Bad stuff disappear by attrition while good product are shared.
I'm struggling to find the point in this story. Are you really asking if anyone who wants to shouldn't be able to learn to code?
And it took you half a page of text to ask the question? A huge number of the 'advances' in technology have been made by people working out of their garage. People who would never have been allowed to program given this ridiculous elitist attitude.
Oh. Right. I forgot to check who posted the story.
Think of the countless small ways in which knowing some code, or scripting has been useful over your life - sorting simple lists, renaming things in batch, formulas in a spreadsheet... etc. etc.
Even if most people will not be doing code professionally, it will help them do little things for themselves. It will also help them understand to some extent why software driven things behave the way they do, and even to make more informed choices as to software driven hardware they buy (and that is the future).
It's not like a flood of really bad programmers will get through most hiring barricades, already famously difficult to storm. They will go on to do things besides programming, where light programming can help them.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I don't really get the point of this post. Kids to make Facebook apps aren't going to be immediately allowed to start writing car OS's, it's a way of encouraging kids to try programming and some of them will love it and become programmers!
I started off typing out code from magazines, that got me in to programming and now look at me! I'm producing code that... ahh, OK, I just got the point of this post...
I think the question is whether everyone should be writing software AND then attempting to sell it to others via the app store. The answer to that, IMHO is no, as making software for others requires a level of professionalism and quality not everyone can reach.
But it would be nice if we could somehow rewind back to the 80s in which every computer came with a simple programming language so that if I wanted to throw together some code to do a simple task for my own benefit, I could do so quickly and easily.
(Note to Apple: Bring back HyperCard, please!)
https://youtu.be/PAHBZImmXsI ... there may be a lot of folk out there who think they can code after having had such a late start in life, but practical experience among the best of universities have found that the tide of talent showing up at their doorsteps has been pretty deeply out, due to lack of having the right opportunities at the right time.
or a QA question or a bruised ego question. Probably a bit of all. In my main field, education, talent is certainly being decentralized. Khan academy, TED, 826 are wonderful things, they will not supplant school buildings in the near term. Everyone is capable of learning, everyone is capable of teaching. Is everyone capable of running a classroom or a school? Likely not. Ditto applications. Is everyone capable of problem solving? Sure. Is everyone capable of coding them? The HyperCard experience pushed the needle in the direction of "yes". Is everyone capable of staffing a software company and shipping an application / OS / database / network solution on schedule at cost to the satisfaction of a boss / manager / bean counter / industry standard? No, and maybe that's not the only way to think of things. But the experience of getting a computer to help solve a problem or make a discovery or automate something or create a new form of expression is something that is worth experiencing. FOSS is in its infancy in terms of how to deal with it and how to share it on a large scale - not just for those who know the same bag of tricks as the people who are creating it. Yes, there's some great FOSS out there, but for the average user, it's like trying to find a radiator cap for a '36 Ford. It can be had, but not on the shelf at the local store and not without some legwork and chin scratching.
"Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
(Note to Apple: Bring back HyperCard, please!)
At least this time around, it might not come with an inbuilt attack vector (courtesy of being able link in application objects).
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
These 'zOMG, everyone should STEM up and become an app entrepreneur!!!' stories aren't really about the desirability of everyone having a career in software development. They are more a reflection of the fact that plucky optimists looking for what kids should do to be successful when they grow up are...not exactly...swimming in options. Yes, they are also letting the fascination with shiny trendy things distort their perception of the options, hence the fascination with who will make the next Social Twitfriend app, rather than who will write unbelievably dull line of business stuff; but in broader strokes they aren't pushing this because it's a good idea, they are pushing it because it's an idea, and they don't have another one.
The pronouncement that 'software is eating the world' may have been a bit hyperbolic; but it sure isn't doing the life chances of people without advanced qualifications any favors. "Everyone writing apps" sounds slightly better than "Everyone selling each other securitized bullshit", so it gets more face time.
I run a P4 3.8GHz single core system as my main desktop, even though I do development with it. Switching to a newer Core i5 system will make it run 10 times as fast, but as the runtime on my huge (tuned) code base is under 5 minutes already, it really won't save me *that* much time compared to *editing* the code. It will save on build time, which is a boon to me, but even that savings is only due to the nature of my build process -- I do full instead of incremental builds.
I do plan on buying a new machine in a few months when I've saved the money, but my main point is that the hardware we use has been "good enough" for a good decade. It is the crappy software the people shovel out that drives hardware upgrades nowadays, not the actual need for faster hardware.
So it is to the hardware manufacturer's benefit that as much software as possible be absolutely incompetently written crap so that people will buy the latest shiny-shiny because their old one is "too slow."
I do not fail; I succeed at finding out what does not work.
This is really just Apple, Microsoft et al trying to get cheap programmers. Not everyone can code the Linux kernel, but anyone without a learning disability can be a rank and file coder banging out data driven apps. Right now Apple has to pay $100k+ for some of those guys. The H1-B program helps, but it's never enough, is it? How 'bout $50k? $20? $15? How low can you go. All you need is enough food and drink to keep 'em going long enough. And so long as they get to look down on all those "non-Coders" (sorta like you're doing right now...) they'll be a-ok with this.
Screw that. Let's get back to Unions, worker solidarity and high minimum wages.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I feel like greater understanding is never a bad thing. Many of these people who start programming, won't ever get around to making a full production application or piece of software. But through experience, they hopefully will come to understand how their technology works. At this moment, we are raising a generation of techies who are just users - but have no inclination of how the tools that drive their lives function on the most basic of levels. Understanding how security work in this day and age is incredibly important.
Software is running our lives. Anyone who can write software knows that, for example, electronic voting can be easily fixed. People who haven't written basic software find this question hard to analyse. Even if these people don't become full-time coders, it's still good that society has more and more people who know how the software running our lives works.
Help build the anti-software-patent wiki
The [cr]Appstore is going to do a pretty good QA job on the user interface. The backends can bite you in less obvious ways but crapware is crap because you think the answers it gives or the bills it sends stink:the dumb get dumped. Software that truly and immediately effects human safety and comes with no liability disclaimers is mighty hard to find. Who is going to use Swift for stuff that is sold/unleashed through outlets other than the Appstore? Let in the clowns.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
Your job is being democratized by the Internet. It will eventually happen to everyone.
can we stop with this nonsense please? it is similar to idiots who oppose teaching all kids programming
restricting access to developing a skillset which just builds on abstract reasoning is a joke, nothing more. it's as if lots of people making lots of programs somehow hurts good programs and good programmers. how? can someone define me how that works? there has to be a formal logical fallacy for what this low iq idea suggests. it's like saying gays getting married somehow hurts heterosexual marriage. and we see how well that mental diarrhea has persuaded
lots of people trying programming only hurts mediocre programmers. the only kind of people who take this nonissue seriously. it's popularity on slashdot therefore does not bode very well for the readership of this website
meanwhile, i welcome anyone who wants to try programming and i wish them well. it can be fun, it can be infuriating. and if in your quest you wind up being more skilled and hired to replaced than the kind of weak mouth breather who wants to somehow magically limit the pursuit of programming to some of kind of bullshit guild, this a surefire win
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
I think we need to also educate people on the difference between software development as a hobby and as a profession.
If I just need to build a storage shed or garden sun-shelter for my backyard, I can build it to any standard of quality, or lack thereof, that I want. It can be completely wonky, as long as it works for me. But if I want to build storage sheds for other people, the rules change. I need to build them to at least a minimum standard of quality, people will expect the trim and paint and the like to not fall off or peel, the doors can't fall off the hinges if you push them wrong, that sort of thing. And if I don't build to those minimum standards I'm going to be held legally liable for the shortcomings.
The same thing applies to software development. Just because you can slap together a to-do list app that works for you, doesn't mean it's ready to market to others. One of the problems is that you can market it without facing any liability for poor quality, and the absolute maximum liability you may face is to have to refund the purchase price. There's no other field where that's the case. Besides education, IMO we need to remove the ability for software publishers to disclaim liability for damages and the implied warranties of merchantability and fitness for purpose. Make it clear that when you move from writing quick apps for yourself or your friends to marketing your software to the public, you're moving into a realm where you're going to be required to meet certain minimum standards of quality whether you like it or not and you'd better be prepared for this.
Yes, this would hurt many software publishers. IMO they need hurt, because the quality of their work is far from what I'd call professional or even reasonable for what they advertise it as.
With the widespread availability of cheap electric power tools, now everybody can build bridges and sky scrapers!
The salaries for lawyers vary like those for software developers. There are a vast number of grunts doing basic work and making adequate salaries. BUT, towards the top of the pyramid, which is exceptionally difficult to reach, there are those making eye-popping salaries.
Ditto with the IT field. That guy who "stole" code from Goldman Sachs, Sergey Aleynikov, was pulling down 400K a year at Goldman. He was set to get 3 times that amount from another company upon leaving Goldman. That's like an elite lawyer's salary. BUT - some guy doing PHP on a no-benefits contract - what, 50-60K? Some average guy doing intranet programming, or building websites for small businesses as an employee? Probably averaging in the same range, maybe a tad higher.
The difference is that there is no bar to entry for programmers. Lawyers have to pass the bar. Anybody can start slapping together apps or get on a no-benefits contract with a little experience. Plus lawyers are highly organized, with the ABA, the American Trial Lawyers association (representing plaintiff lawyers), etc. IT types are way too... I dunno, disorganized, libertarian, low-social-IQ (in general) for that kind of thing. But people that make businesses are not low social IQ. They're dealmakers. And they absolutely hate having to pay these high salaries. They figure if they can flood the market, they can lower their labor costs.
Jokes on them a bit though. True, they'll suppress IT salaries in general. But the superstars will still be a small fraction of the overall IT pool, and they'll still command the stratospheric, though a bit lower, salaries.
And programmers ought to be organizing more behind the ACM, I guess, and encouraging some kind of "PE" (Professional Engineer) equivalent to mark one as someone who actually knows the theory of computer science and practice of programming.
The history of computing shows us that this technology is becoming more accessible. Both to consumers and the providers. You no longer have to use punch cards to write computer programs. Or use assembly. Modern languages and development tools are much easier to work with for an average person. And that trend is going to continue. There is nothing you and I or Apple/Facebook/Google can do to stop the march of progress.
Unfortunately for you, that means you will have to continue to learn new technologies to remain marketable to employers.
Why does every program have to end up on the market? I'm constantly creating small programs that solve small problems. It is amazing how many small problems that full featured applications don't even attempt to solve unless you are doing something that resembles programming anyhow (e.g. use a spreadsheet). It is also amazing how many of those apps can be replaced by 10, 20, or 40 lines of code. The result may lack a fancy GUI, but it's often worthwhile to avoid having your data locked into an app or service that makes no provisions for exporting your data. It is often worthwhile to avoid the games that some app developers play in order to make a few bucks.
It is amazing what you can program yourself. Modern libraries and development environments usually take care of the hard work and let you focus upon solving a problem. I'm not saying that every one needs to be able to make web browsers or office suites or even their own notepad. Yet having the ability to create small programs to solve small problems often makes the impossible possible, or helps you to avoid other people's shoddy code. (Sure, you may be replacing it with your own shoddy code. Then again, you have access to it and understand how it works so it is easier to fix problems.)
I've written a lot of software, from ethernet drivers in the 90's, to 802.11 drivers in the '00s, PCI drivers, automatic robotic testing platforms, cell phone base stations, and missile telemetry decoders, to name some of the hardest I've done. The #1 hardest thing I've had to write? GUIs. First off, assuming you can get the GUI to do what you want, it's very easy to say "that sux". It's much harder to say "here's how you fix it".
That's assuming you can get the GUI to work the way you want it to. I've been writing Java/Swing apps for a few months now. I don't care how many web pages or books you read, shit just don't work like you think it should. My last GUI was a good 20 years ago using Tcl/Tk, and I thought it was a bitch to learn. But Swing is just kicking me in the balls morning, noon, and night. Cut and paste code from some webpage that you think you understand, tinker with it to make it match what you need to do, and it just don't fricken work.
And before SQL, there was COBOL (COmmon Business Oriented Language), which was meant for regular people to program computers instead of requiring programmers writing in assembler ...
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
I'd be curious to know, among Slashdot readers, whether the essay below rings true. Are you a programmer? A libertarian?
------------------
Libertarian IQ
I'm finally making good on my promise to post my "wild speculations" about Computer Science IQ and Libertarian inclination.
First let me give some background on CS IQ. I have taught at least 5,000 students how to program, which has given me a strong set of hunches about what goes on in their heads. But the most useful source of information came from my work as Chief Reader for the Advanced Placement Exam in Computer Science.
AP programs allow high school students to take college-level courses at their high schools and take a test that allows them to receive placement and usually credit for their work. As with all AP exams, the AP/CS Exam is divided into two parts: multiple-choice and free-response. In the free-response section, students hand-write solutions to problems. This has always been considered an integral part of the AP program because of the (at least perceived) limitations of multiple-choice tests. The AP/CS exam had 50 multiple-choice and 5 free-response questions. The free-response questions were all of the form, “Write a piece of code that does the following"
Obviously, the hand-written solutions need to be graded by real people. Every year about 60 CS teachers (called “readers") get together for 6 days to grade 10,000 exams. As Chief Reader, I was responsible for choosing the 60 teachers, managing their efforts for those 6 days, and setting the ultimate distribution of AP grades. In 1988 I made AP history by giving the all-time worst set of AP grades ever given out (I failed almost half of them). As a result, ETS approved a request they had never approved before. They gave me a diskette (actually 2) with the raw scores for all 10,000 candidates so that I could “study" it. My undergraduate degree is in math with a statistics specialization, so I’m the kind of person who likes to play with data.
One of the things I looked at was the set of correlations between various multiple-choice questions A high correlation between 2 test items indicates that candidates performed similarly on those items (i.e., those who got one right tended to get the other right and those who got one wrong tended to get the other wrong). I expected to find either virtually no correlations, because there was little repetition on the test, or clusters of correlations. If you were to test people on math, for example, you might find that arithmetic questions correlated highly with arithmetic questions, algebra questions correlated highly with algebra questions, geometry questions with geometry questions, and so on. I expected a similar pattern based on various programming constructs/skills.
What I found was highly puzzling. Five multiple-choice questions were each correlated with over a dozen other questions and I found virtually no other correlations at all. But there was no pattern to the correlations for these five. Let me describe the grandaddy as an example. One had more correlations than any other and I nicknamed it the “grandaddy." It was highly correlated with 25 other questions, yet the topic that it tested had nothing to do with the topics covered by these other questions.
When I looked at correlations between multiple-choice and free-response, I became even more puzzled. There was definitely repetition between the two halves of the
Youtube makes it simple for anyone to upload videos, and 0.01% of them are worth watching. Appstores have made it easy for people who already know how to program to release programs, and 0.1% of them are worth having for free and 0.01% of them are worth having for the price charged.
If you are not allowed to question your government then the government has answered your question.
Point I'm trying to make is that OP is making mountain out of molehills. Everybody can write and the pen is mightier than the sword but not everybody can write just as well to be handed the keys of the world (laws and other important documents), this applies to software as well. Scarcity of top level positions will ensure the fittest. Unfortunate or not, I leave that to you.
What about requirements gathering? Business modeling? Testing? Versioning? Maintenance? Hosting? Building the app? Distributing the app.? Administering the build machines? Documentation? Communication and control of a project?
I'm sure I missed something. But there are a huge number of components to a reasonably sized software project. Programming is often the smallest, in numbers, slice of the task.
putting the 'B' in LGBTQ+
The damn FA is nothing but a fucking clickbait
'Everybody can program" ??
Most of the humans in this world are idiots. Many of them can't even drive a motor vehicle safely, and TFA adopts the chicken little's "The Sky Is Falling!!" attitude exclaiming that everybody can program?
Please, everyone write as much crappy software and put it in as many questionable places as possible.
Lawyers are evil, but GM cars don't have ignition switches anymore, do they?
..don't panic
"...medical industry is replete with new software these days. Poor code here can legitimately mess up somebody's life..."
What a ridiculous summary, and a complete insult to the entire industry revolving around medical software regulatory compliance.
Sure you are free to write medical software. But I guarantee no-one's life will be depending on it until it has been certified by FDA or equivalent. There are going to be lots of checks and documentation between a script kiddie and someone's life.
the mega-corps will be happy to do that for you. Especially since you're so willing to give it up. Now go ready some history about Unions and stfu. Seriously, you have no bloody idea what you're talking about.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
One huge trend in work over the last century or so has been towards automation. We need fewer people, or can do more with the same number of people, by automating some or all of peoples' jobs.
We don't need everyone to "build software" as you may think of it. However, we do need a substantial part of the workforce to automate their own jobs. Think about it. For most typical jobs, the ability to automate your work makes you more productive, more valuable, and can make you feel better about your life.
Automation, of course, means instructing machines.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
So you're saying that if you're not in the ACM you shouldn't be able to make your tarball of source code available for download? Or are there going to be government stamps issued (presumably complex holograms) that need to be affixed to any software that people are allowed to run?
Obviously the equivalent is a cryographic boot manager. Do you work for Microsoft??
Indeed. This is a must-read for any coder and software engineer. Most have not even heard of it these days and hence the same mistakes are being made over and over again.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Because everyone is now a special snowflake, so they should get to make the next big app. No one really needs training or experience.
love the taste, hate the texture
So we should teach everybody brain surgery as well, and maybe nuclear engineering? Yeah, that makes sense...
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
This issue pops up from time to time, and it's inevitable, if you think about it. As computers bec{a,o}me more available and more accessible to everyone, more people began producing some sort of code with 'easy' tools, churning out truckloads of low quality, unreliable and sometimes even dangerous software. There's not much you can do about it, aside from trying to be informed about the third party software you try to use. Well, it's not like professionals don't produce crap sw, but there's a world of difference there. All we can hope is that in time education will change to include enough general computing knowledge for everyone, that can at least provide some minimal required knowledge level to make further autonomous improvement of abilities easier.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
It's not practical any more than everyone learning to be lawyers or plumbers or electricians. Get experience and master your art rather than try to be a jack of all trades. Newbie programmers usually do poor work for a while (or are slow), just like newbie plumbers.
Table-ized A.I.
programmer?
Person 1 rips you off to the tune of $200.
Person 2 demonstrates how to get Person 1 to rip you off only $100, for $25.
So now you're ripped off $125 instead of the original $200. It doesn't matter how many people are ripping you off except to determine the total amount you are getting ripped off and figure out who to keep around.
I think it's very well established what happens. As with many fields before it, you're throwing stuff open to a market in blind faith that this'll do good things. Then, social engineers take over and squeeze out the capable, and as the general populace gets more desperate for survival, they flock to the new hope in great numbers, and flood out everything, The elitism is crushed, barriers go down and you get a problem where you can't get qualified people because they can't get a foothold against the sheer numbers of crap and therefore can't survive to hone their skills.
This is not an inherent problem with democratizing stuff, it's a problem with doing that and then throwing all competitors into a maximally free market where other factors besides merit are in play.
Time ain't fungible: if you learn a tiny itty bit of everything, you'll kinda suck. If you kinda suck at social engineering and marketing, you're going to fail in a market. The person who spends WAY more of their time at that will win. If they're a Swift programmer, they will not have spent their time learning to program correctly, and their product will be junk, but since people's awareness of their product is ENTIRELY dependent on the programmer's mad social marketing skills, it will dominate and starve out other projects.
If you devote all your effort to the quality of your project, you'll leave nothing over for social engineering, and your thing will die a horrible death: what happens is people glance at it and say 'gee, that looks amazing! Since absolutely nobody is interested, they must know something I don't. I'm not interested either.'
Areas that have been profoundly affected by this whole mechanic include popular music and game programming. Look at Steam Greenlight sometime. That's your free market future, and ability to manipulate the market will always be more profitable than trying to improve quality and hoping 'the market' will notice in a world where people specialize in bending the rules.
It produces a funny sort of stratification because if you do get a foothold you can build upon that, but it takes luck to even get that (plus quite possibly a lot of sacrifice and losing money, so you will have to already be wealthy or in some kind of protective situation where you can lose money building your toehold). You harden your position as somebody the market has recognized, doing whatever you can to augment that public awareness, and this gives you the basic minimum people are unjustifiably assuming is the norm: that, in doing something, you'll be seen at all to be judged.
At that point you can act like a market element competing, but in this situation of total noise and flooding, if you don't have that there IS no path to it. In the rigidly controlled, union, regulated, gatekeeper world so many Slashdotters hate, you're blocked by gatekeepers and you know who they are and can ask their terms and negotiate: pay, study for accreditations, make friends, whatever. In the free market world the gatekeeper is Brownian motion, and you can't negotiate with a force of nature or a law of statistics.
So no, 'everyone able to build amazing apps with Swift' is not what we really need. It seems populist but it's based on an underlying fantasy of removing all gatekeepers and letting 'the market' sort it out, and the market will pick social engineers and put up barriers more daunting than anything human gatekeepers can muster.
There is one upside: the case where someone has their own expertise, which has value, but must be expressed by code to be functional.
Content-driven software. Stuff where the message or the payload is the valuable part, and the coding could be done by a variety of capable drones because it, itself, is not innovative at all.
In this case, we see a valuable thing (which may be able to stand up in a market economy on its own merits) given lower barriers to existence, by the software guys basically putting yourselves out of jobs: developing systems that can be effectively applied in generic ways by novices.
Seems, uh, generous, but knock yourselves out. I know I enjoy it when something like Unity comes out and I can play with game tech so easily, and then competing with the Unreal engine you get Unity making all their paid features also free in 5. A coder might have no idea what high dynamic range lighting is for, but somebody like me might respond, 'hey! Flares! For meeee? Thanks, anonymous coder guy who once would have justifiably charged me tens of thousands to get this working in a game, but now I can just use it and not even credit you or know who you were! This will help my idea look more impressive, assuming I have one.'
Again: seems kinda, erm, generous? But by all means, carry on. I'm not the expert coder here. I can only assume many of you guys are so totally insulated from the reality of the world that you'll blithely render your skills worthless in the 'free market' in the belief that you won't end up totally hosed by the resulting flooding of recycled crap.
And your skills might, just might, be cannibalized by somebody with some decent idea worthy of success, and you'll have helped them for free. It's nice of you though the chaos of crap-flooding is not quite as nice. But that's what you get when you wipe out all the structure of the situation and reduce it to raw chaos 'market'.
â¦but I can always TRY!
Learning to program something that is C like takes quite a while and its not very useful for most people.
For the general public, should be offered an a bit powerful but real easy to understand scripting system that allows em to do things that are actually useful for the general public, like setting up a simple tree that warns him on the SMS or skype when a download finished on a machine by basically dragging two blocks and connecting em, or allowing him to sync every audio device with the same playlist etc.
Also such simple programming script thing should be integrated to the OS and offered as a standard.
,,,the future we want.
There is nothing wrong with every jack on the planet cobbling together their very own programs. Programming is dead easy. Any fool can code, and I have nothing against that.
The point is that software which is to be re-used (whether FOSS or proprietary software) should be held to certain design standards.
FOSS software manages itself, more or less, and the user's job is to choose software that does what's needed and looks credible from a development point of view (sensible forums, active development community, public source code repository so that you can check activity, etc.),
Proprietary software is more difficult. It runs the entire spectrum from shoddy to excellent, and you can't really tell from the outside (short of reading forum posts about it).
Software for which there is substantial cost attached to failing (whether proprietary or FOSS) should be properly designed, quality-controlled, and managed (as opposed to being hacked together).
I don't see any problems to give to everyone the possibility to build software. That does not means that everyone will do software. Do you think we should make it harder for people to learn to cook (almost everyone has the possibility to learn this) to protect the job market of cooks?
So given the general global lack of really good software engineers (insert you definition of a 'good software engineer' here) we should encourage more people to consider a career in software engineering. As the 'experts in our field' it's our responsibility to mentor up-and-coming engineers and teach them how it should be done. It doesn't matter how you get into software engineer but it matters how you grow (or not) with it.
"Now everyone can build amazing apps." My question: is this what we really need?
To some degree yes. There absolutely is a need for tools to allow people who aren't professional software engineers to do some form of programming. It doesn't have to be the most sophisticated but the need is there. Haven't you ever wondered why spreadsheets get used for all sorts of tasks they aren't optimized for? It's because it is a way for non-professional programmers to program a computer to do useful tasks. People use spreadsheets as sort of ersatz databases all the time which should be a serious hint that there is a huge need for databases for modest tasks with a much easier to use interface. (yes even easier than Filemaker or Access) Programming doesn't have to be written in C or Swift or Java. Writing a spreadsheet is a form of programming. Creating a macro in a word processor is a form of programming. Sure it's like bowling with the bumpers on the lane gutters but what's wrong with that?
Everybody should have some means to program computers. Swift clearly isn't actually the answer but the notion that everybody should be able to program isn't a dumb idea at all. Expand your definition of what programming is.
People write software for the cars we drive; our finances are in the hands of software, and even the medical industry is replete with new software these days. Poor code here can legitimately mess up somebody's life. Compare this to other high-influence professions: can you become surgeon just because you bought a state-of-art turbo laser knife? Of course not.
That is a ridiculous argument. There will always be a need for programmers to solve problems beyond the abilities of the unwashed masses. Nobody is pretending they are a doctor because they stayed at a Holiday Inn Express last night except in advertisements. But that is not a credible argument against providing tools that allow those with less expertise to do useful work. Do we only allow Formula 1 drivers on the roads even though most drivers are far less skilled? Give people the tools to do work at the level they are capable of.
But if I want to build storage sheds for other people, the rules change. I need to build them to at least a minimum standard of quality, people will expect the trim and paint and the like to not fall off or peel, the doors can't fall off the hinges if you push them wrong, that sort of thing. And if I don't build to those minimum standards I'm going to be held legally liable for the shortcomings.
So when are we going to start holding software developers "legally liable for the shortcomings" of the software they write? With some notable exceptions we definitely are not doing this now. When is Adobe going to be liable for the problems caused by Flash? When is Microsoft going to be liable for Windows?
The same thing applies to software development. Just because you can slap together a to-do list app that works for you, doesn't mean it's ready to market to others.
It also doesn't mean we shouldn't provide ways for people to slap together that simple app. I see too many people here thinking programming always has to be some deep art requiring years of training. When people use a spreadsheet they are doing a form of programming. And if that spreadsheet is useful to others (as they sometimes are) then there is nothing wrong with them giving or even selling it to others. The market will determine whether it has real value or not. It doesn't have to be developed in some high cathedral of programming in every case. There are no lack of times when yes you absolutely want well trained IT pros doing the coding but we shouldn't turn it into a clergy where only the IT pros are allowed to code. Swift clearly isn't the solution but in principle there is no reason we shouldn't have tools to allow anyone to program meaningful and useful tools.
I am an engineer (among other things) and I've done more than a trivial amount of coding but I do not code for a living and likely never will. My talents lie elsewhere. But I do develop a lot of small tools to automate business processes. Spreadsheets, small databases, scripts, macros, web pages, etc. I can think of lots of tasks where a sort of pre-fabricated programming systems where I could just organize a set of pre-defined tasks would be super useful and this is a form of programming. (Think lego mindstorms level complexity but more general purpose) I don't think there is any danger of professional programmers being displaced by such a tool. If anything it would free them up to concentrate on less trivial tasks.
It's not going to get worse. The planet is already flooded with terrible code from both professionals and amateurs.
I recently stumbled upon Apple's headline for version 2 of its Swift programming language: "Now everyone can build amazing apps." My question: is this what we really need?
As someone who regularly fixes software built by morons I see my career never going away.
Build on clueless, build on....
Companies have done so much to lower the barrier of entry, that we have huge swaths of 'developers' who are basically walking personifications of the Dunning-Kruger effect. The amount of craptastic software out there is just incredible because people can't be bothered to learn even the most basic fundamentals like de-coupling.
I remember taking a database course in university, aced it without even trying, and constantly asking myself, "What's so difficult about this?" Yet people are flocking to things like MongoDB, not because it's the best tool for the job, but because SQL is too hard.
And yet when looking for a job, these are the nimrods that real developers have to compete against, and have an excellent chance of losing against because they're more skilled at schmoozing than doing a good job.
Err, no, programming still requires a goodly amount of study and understanding, regardless how the various complexities have been hidden. The margin for error remains rather low--how are those Andriods doing? Car entertainment systems? Browsers? And in the department of learning from history, I present, CVE-2013-4259 and CVE-2014-3563 for two shiny new configuration management softwares. How long have /tmp security problems been known? Two decades, at least? Now, marketing programming to folks that might be interested in beginning that journey is a different story, and probably more in line with what Apple is attempting here.
Not everyone is good at it and still, other things need to be done.
- Zav - Imagine a Beowulf cluster of insensitive clods...
You've hit upon what I read into the OP. The writer seems to be moaning about anybody being able to write a program, period. I guess the OP might believe we should license all programmers after a sufficient course of education and only allow licensed programmers to have access to programming tools. The rest of you proles can take a hike and beg the Programmers to do something or pay them exorbitant amounts of money to get something.
I have seen this in industry where the IT people started to try to corner ALL programming in a company. They proposed that if it even slightly fell into the realm of programming, one would have to submit a proposal and MONEY to the programming group. They would then decided if was needed and prioritize it. Then six months to a year later one would get the first cut at the product. Fortunately the proposal/process died an early death.
Asking whether we need (want) everyone writing code is the same as asking whether we want everyone to be literate and write prose.
Dave Crocker bbiw.net
Sorta off-topic, but in your case you'd probably still be better off switching to a newer system just to cut your electricity and/or AC bill...
I use Macs for work, Linux for education, and Windows for cardplaying.
Everybody who buys a calculator doesn't get to be an engineer either, but all engineers start out by buying calculators. Newcomers are the future experts, and they also bring new ideas. Since the "already troubled" IT industry keeps producing shitty software, it sounds like maybe not enough people and not the right kind of people are currently doing it.
Anyway everyone has a computer, why shouldn't they be able to properly tell it what to do? Don't we sit around and make fun of passive "end users" who don't know jack? And yet all good software is made by understanding what users want/need. The typical programmer has certain blind spots that impact his (yes it's usually a he) ability to do that. So the more "users" you turn into "coders," the wider the bandwidth of that communication channel, and the software gets better inevitably. You still need a way to sort out the good from the bad, but that too, is enhanced the more people know about coding.
Hardware speed has improved exponentially for decades. Application speed, capability, and quality has not.
You're about 30 years late WRT your reference. When I said "back in the day"...
I first saw the term "software priesthood" in print in Byte magazine -- it was 1976, I think. It was already in play among those of us who had already been programming for a while, and even more so among certain sectors of management.
I've fallen off your lawn, and I can't get up.
Fact is, users do not value quality. Even if a dinky app crashes five times during a ten minute period they will continue using it if it suits their needs. Do users like the app to crash less often or not at all? Sure!! Do they want to wait on features or even pay up for better quality? Hells no! I work as quality assurance specialist (aka tester) and while we testers have user satisfaction as main goal in mind it is incredibly frustrating to inject quality during the design phase and keep quality up during development. Main problem: businesses and organizations do not value software quality, even if it is totally obvious that better quality is good for success and that spending a wee bit more time on quality before release will effectively reduce much bigger cost later, be it technical, financial, or ideally. Many books, papers, blogs, and posts have been written about this and as soon as this reaches decision makers it falls on deaf ears. Doing software QA is the most frustrating job in IT! Nevertheless, I still like it.