Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Taco Bell Programming

timothy posted about 4 years ago | from the how-dare-you-insult-the-code-monkeys dept.

Businesses 394

theodp writes "Think outside the box? Nah, think outside the bun. Ted Dziuba argues there's a programming lesson to be learned from observing how Taco Bell manages to pull down $1.9 billion by mixing-and-matching roughly eight ingredients: 'The more I write code and design systems, the more I understand that many times, you can achieve the desired functionality simply with clever reconfigurations of the basic Unix tool set. After all, functionality is an asset, but code is a liability. This is the opposite of a trend of nonsense called DevOps, where system administrators start writing unit tests and other things to help the developers warm up to them — Taco Bell Programming is about developers knowing enough about Ops (and Unix in general) so that they don't overthink things, and arrive at simple, scalable solutions.'"

Sorry! There are no comments related to the filter you selected.

8 keywords? (1, Funny)

lalena (1221394) | about 4 years ago | (#34006676)

So if I limit myself to 8 keywords my code has less defects and is more maintainable?

Re:8 keywords? (5, Insightful)

Anonymous Coward | about 4 years ago | (#34006696)

exactly.

Those 8 keywords are + - > [ ] . ,

Re:8 keywords? (1)

the_macman (874383) | about 4 years ago | (#34006734)

For EXTREME challenge limit yourself to 8 bits!

Re:8 keywords? (0)

Anonymous Coward | about 4 years ago | (#34007002)

I try to limit myself to a 1 or a 0.

Re:8 keywords? (1)

toastar (573882) | about 4 years ago | (#34007046)

exactly.

Those 8 keywords are + - > [ ] . ,

Pfft... Real programmers only need NAND gates.

Re:8 keywords? (0)

Anonymous Coward | about 4 years ago | (#34007340)

Get the brain outta here!

Re:8 keywords? (4, Insightful)

hardburn (141468) | about 4 years ago | (#34006788)

Ook! Ook?

Re:8 keywords? (0)

Anonymous Coward | about 4 years ago | (#34006902)

So if I limit myself to 8 keywords my code has less defects and is more maintainable?

Yes. Look at your English as an example, with its thousands of keywords. Reduce your vocabulary and you'll have fewer defects in what you produce.

Re:8 keywords? (2, Insightful)

tompaulco (629533) | about 4 years ago | (#34007368)

I find that most defects in the English that is produced is due to the use of words that are not in the vocabulary. A sufficiently intelligent compiler (listener) is able to successfully compile the code even though the programmer(speaker) did not write it correctly, which unfortunately only reinforces the bad habit of the programmer.
I saw this same behavior in Internet explorer a few days ago. Someone complained that "Firefox isn't working", because an ASP page had a malformed link in it. IE was "smart" enough to unmangle it and display it. Firefox chose not to try to outthink the programmer and reinterpret the mess that had been passed to it. The users assumption was that Firefox was broken. I would argue the opposite.

Re:8 keywords? (1)

EdIII (1114411) | about 4 years ago | (#34007014)

I don't get that either, but the summary said 8 ingredients. Which made me wonder if all of Taco Bell's food is made from 8 basic ingredients. That seems to be what it is saying... right?

Either way, now I am confused and hungry.

8? I thought it was 3 ... (2, Funny)

Zero__Kelvin (151819) | about 4 years ago | (#34007158)

I thought there were three basic ingredients:
  • Protons
  • Neutrons
  • Electrons

Re:8? I thought it was 3 ... (2, Insightful)

dakameleon (1126377) | about 4 years ago | (#34007332)

I thought there were 6 - up, down, strange, charm, top and bottom?

Re:8? I thought it was 3 ... (2, Funny)

digitig (1056110) | about 4 years ago | (#34007376)

No, it's up, down, sideways. sex-appeal and peppermint.

My order (4, Funny)

Wingman 5 (551897) | about 4 years ago | (#34006688)

Can I get a server logging system, hold the email notifications. Can I get extra rotating log files with that?

Re:My order (1)

phantomfive (622387) | about 4 years ago | (#34006692)

Doesn't Unix already do that by default?

Re:My order (0)

Anonymous Coward | about 4 years ago | (#34006726)

woooshhhh

Re:My order (0, Offtopic)

WeatherGod (1726770) | about 4 years ago | (#34006964)

Can I also get a "whoooosh" with that, or is that extra?

which language is best? (5, Insightful)

phantomfive (622387) | about 4 years ago | (#34006690)

Reminds me of a job interview I did once with an old guy, he had around 30 different programming languages on his resume. I asked him which programming language was his favorite, expecting it to be something like Lisp or Forth, but he said, "shell script." I was a bit surprised, but he said, "it lets me tie pieces in from everywhere and do it all with the least amount of code."

I wasn't entirely convinced, but he did have the resume. Seems Mr Dziuba is from the same school of thought. I read the full introduction to the DevOps page and I'm still not entirely sure what it's about. We should work together and deliver on time, or something like that.

Re:which language is best? (4, Insightful)

visualight (468005) | about 4 years ago | (#34006750)

The DevOps thing is yet another crock of shit on par with 'managing programmers is like herding cats' and web2.0

Re:which language is best? (5, Funny)

Anonymous Coward | about 4 years ago | (#34006816)

The DevOps thing is yet another crock of shit on par with 'managing programmers is like herding cats' and web2.0

I volunteer at a cat rescue. Herding cats is much easier than dealing with programmers.

Re:which language is best? (1)

oldhack (1037484) | about 4 years ago | (#34006960)

Damn and blast them. What we need is to automate away all the asinine programmers. You know, like with those Rational stuff. :-)

Re:which language is best? (0)

Anonymous Coward | about 4 years ago | (#34006876)

You've posted this story before, I believe. Is that so?

Re:which language is best? (1)

phantomfive (622387) | about 4 years ago | (#34007108)

Yes sir, that is correct. It was a long time ago, you have a good memory.

Re:which language is best? (4, Insightful)

martin-boundary (547041) | about 4 years ago | (#34007068)

Sadly, Mr Dziuba has the right idea but uses terrible examples in his blogpost.

Wget for crawling tens of millions of web pages using a 10 line script? He doesn't understand crawling at scale.

There's a lot more to it than just following links. For example, lots of servers will block you if you start ripping them in full, so you need to have a system in place to crawl sites over many days/weeks a few pages at a time. You also want to distribute the load over several IP addresses, and you need logic to handle things like auto generated/tar pits/temporarily down sites, etc. And of course you want to coordinate all that while simultaneously extracting the list of URLs that you'll hand over to the crawlers next.

His other example is also bullshit. Tens of millions of webpages are not that much for a single PC, it hardly justifies using MapReduce, especially if you're only going to process pages independently with zero communication between processes.

MapReduce is all about cutting the dataset into chunks, then alternating between 1) an (independent) processing phase on each chunk, and 2) a communication phase where the partial results are combined. And where this really pays off is when you have so much data that you need a distributed filesystem.

Re:which language is best? (4, Insightful)

ShakaUVM (157947) | about 4 years ago | (#34007088)

>>I asked him which programming language was his favorite, expecting it to be something like Lisp or Forth, but he said, "shell script."

Shell script is awesome for a large number of tasks. It can't do everything (otherwise we'd just teach scripting and be done with a CS degree in a quarter), but there's a lot of times when someone thinks they're going to have to write this long program involving a lot of text parsing and you just go, "Well, just Cut out everything except the field you want, pipe it through sort|uniq, and then run an xargs on the result." You get done in an hour (including writing, args checking, and debugging) what another person might spend a week doing in C (which is spectacularly unsuited for such tasks anyway).

More crap from Ted Dziuba. (3, Insightful)

Anonymous Coward | about 4 years ago | (#34006700)

Good grief, I think this is yet another useless article from the Ted Dziuba/Jeff Atwood/Joel Spolsky crowd. They spew out article after article after article with, in my opinion, bullshit "insights" that don't hold any water in the real world. Yet they've developed such a large online following, mainly of "web designers", "JavaScript programmers" and "NoSQL DBAs", that it tricks a lot of people in the industry into thinking what they say actually has some usefulness, when it usually doesn't.

Yeah, it's great when we can write a few shell or Perl scripts to perform simple tasks, but sometimes that's just not sufficient. Sometimes we do have to write our own code. While UNIX offers a very practical and powerful environment, we shouldn't waste our time trying to convolute its utilities to all sorts of problems, especially when it'll be quicker, easier and significantly more maintainable to roll some tools by hand.

Re:More crap from Ted Dziuba. (1)

moonbender (547943) | about 4 years ago | (#34007102)

Yeah, it's great when we can write a few shell or Perl scripts to perform simple tasks, but sometimes that's just not sufficient. Sometimes we do have to write our own code. While UNIX offers a very practical and powerful environment, we shouldn't waste our time trying to convolute its utilities to all sorts of problems, especially when it'll be quicker, easier and significantly more maintainable to roll some tools by hand.

Nice three sentence rebuttal!

Let me tell you a story (5, Interesting)

Giant Electronic Bra (1229876) | about 4 years ago | (#34007124)

Once, about 20 years ago, I worked for a company who's line of business generated a VERY large amount of data which for legal reasons had to be carefully reduced, archived, etc. There were various clusters of VMS machines which captured data from different processes to disk, from where it was processed and shipped around. There were also some of the 'new fangled' Unix machines that needed to integrate into this process. The main trick was always constantly managing disk space. Any single disk in the place would probably have 2-10x its capacity worth of data moving on and off it in an given day. It was thus VITAL to constantly monitor disk usage in pretty much real time.

On VMS the sysops had developed a system to manage all this data which weighed in at 20-30k lines of code. This stuff generated reports, went through different drives and figured out what was going in where, compared it to data from earlier runs, created deltas, etc. It was a fairly slick system, but really all it did was iterate through directories, total up file sizes, and write stuff to a couple report files, and send an email if a disk was filling up too fast.

So one day my boss asks me to write basically the same program for the Unix cluster. I had a reputation as the guy that could figure out weird stuff. Even had played a small amount with Unix systems before. So I whipped out the printed Man pages and started reading. Now I figured I'd have to write a whole bunch of code, after all I'm duplicating an application that has like 30k lines of code in it, not gigantic but substantial. Pretty soon though I learned that every command line app in Unix could feed into the other ones with a pipe or a temp file. Pretty soon I learned that those apps produced ALL the data that I wanted and produced it in pretty much the format that I needed. All that I really had to do was glue it together properly. Pretty soon I (thank God it starts with A) I found awk, and then sed. 3 days after that I had 2 awk scripts, a shell script that ran a few things through sed, a cron job, and a few other bits. It was maybe 100 lines of code, total. It did MORE than the old app. It was easy to maintain and customize. It saved a LOT of time and money.

There's PLENTY to recommend the KISS principle in software design. Not every problem can be solved with a bit of shell coding of course, but it is always worth remembering that those tools are tried and true and can be deployed quickly and cheaply. Often they beat the pants off fancier approaches.

One other thing to remember from that project. My boss was the one that wrote the 30k LoC monstrosity. The week after I showed her the new Unix version, I got downsized out the door. People HATE it when you show them up...

Re:Let me tell you a story (-1, Troll)

Anonymous Coward | about 4 years ago | (#34007208)

Yeah, Unix is great but I think pipes and awk are a bit brittle for production.

Re:Let me tell you a story (3, Interesting)

19thNervousBreakdown (768619) | about 4 years ago | (#34007386)

How, exactly, are they brittle? I've heard this term used a number of times, but never actually seen a prediction of brittleness be an accurate predictor of any amount of bugs, maintenance issues, or really any negative outcome. As far as I can tell, it's just a weasel word to be used when you don't like something for aesthetic reasons or understand it fully.

So, prove me wrong. Explain exactly what's bad about using code that's been more heavily used and tested in production systems than just about anything else for more than 20 years.

Re:Let me tell you a story (2, Funny)

oldhack (1037484) | about 4 years ago | (#34007360)

You had it coming, smart ass.

Software is not food (1)

BSAtHome (455370) | about 4 years ago | (#34006706)

You can easily have a little more or less salt, sugar or flour in your food. However, software is not so forgiving. Change one character and you screw up badly. Lets face it, software is hard to write and it is even harder to write good software.

Although re-use is a good thing and scripting many common problems instead of coding in [insert low-level language] is also good. But this should be common sense for any /good/ programmer. Good tools make bad programmers look slightly less bad, but fuck up anyway. Good tools make good programmers gurus.

Re:Software is not food (5, Funny)

Anonymous Coward | about 4 years ago | (#34006724)

"Compilers are like boyfriends, you miss a period and they go crazy on you."

Re:Software is not food (-1, Offtopic)

Jorl17 (1716772) | about 4 years ago | (#34006810)

Please mod this funny!

Re:Software is not food (1)

TeknoHog (164938) | about 4 years ago | (#34006812)

Change one character and you screw up badly. Lets face it,

(I'd like to respond with something clever, but I'm afraid I'll negate my entire argument a'la Muphry.)

Re:Software is not food (4, Insightful)

GiveBenADollar (1722738) | about 4 years ago | (#34006822)

You can easily have a little more or less salt, sugar or flour in your food. However, software is not so forgiving. Change one character and you screw up badly..

Just try substituting a tsp with a tbsp of salt in your favorite recipe and then tell me food it forgiving.

Re:Software is not food (0)

Anonymous Coward | about 4 years ago | (#34007076)

I cook more often than most, and I never use recipes. You can't go very far in developing software with the same approach. Baking is closer to the strictness of software.

Re:Software is not food (2, Interesting)

sakdoctor (1087155) | about 4 years ago | (#34007234)

Had a friend confuse bulbs of garlic with cloves of garlic. Niiice.

Re:Software is not food (3, Funny)

T Murphy (1054674) | about 4 years ago | (#34007274)

Had a friend confuse bulbs of garlic with cloves of garlic.

My uncle made that mistake once. It resulted in everyone asking him for the recipe (true story).

Re:Software is not food (0)

Anonymous Coward | about 4 years ago | (#34007330)

I did that once. Not a good experience.

Re:Software is not food (1)

vxice (1690200) | about 4 years ago | (#34007286)

and analogies are like people none of them are perfect, but some are good enough. They are used for their similarity in a few cases to demonstrate an idea. For if software was like food it would not be called software it would be called food and there would be no need for comparison.

I write all my code in brainfuck (1)

MyDixieWrecked (548719) | about 4 years ago | (#34006714)

...you insensitive clod!

8 commands. period. no more, no less. Super maintainable, cross platform and...

bah, who am I kidding?

What a relief! (1)

macraig (621737) | about 4 years ago | (#34006764)

When I saw the title I thought it was a book review of a new O'Reilly release of that name.

Once again, The Onion shows us the way (0)

Anonymous Coward | about 4 years ago | (#34006774)

From over a decade ago: Taco Bell's Five Ingredients Combined In Totally New Way [theonion.com]

I think of that article every time Taco Bell adds a "new" item on their menu.

I limit myself to 2 bits (2, Funny)

topham (32406) | about 4 years ago | (#34006776)

I limit myself to two bits. A 0 and a 1.

Why would I need 8?

Code reuse, junk food example? (1, Interesting)

syousef (465911) | about 4 years ago | (#34006784)

Seriously, what's going on with the articles here? "My code is like a Taco"? Is that flying because of CmdrTaco's username?

Nothing new here:
1) Code reuse. Woopdeedoo. The whole industry has invested heavily in many paradigms for reusing code: The reusable library, module reuse, object reuse etc.
2) Stringing Unix commands together is news? Did I just take a Deloriane back to 1955? (Well that's a slight exaggeration. Unix has only been around since the 70s)

Finally, who wants to compare their code reuse to a crappy junk food chain? I'd rather think of myself as a professional that earns commensurate pay than a junk food server who needs to be trained to ask "would you like fries with that?".

Re:Code reuse, junk food example? (5, Interesting)

Tablizer (95088) | about 4 years ago | (#34006820)

I've found the best reuse comes from simple modules, not from complex ones that try to do everything. The one that tries to do everything will still be missing the one feature you need. It's easier to add the features you need to the simple one because it's, well, simpler. With the fancier one you have to work around all the features you don't need to add those that you do need, creating more reading time and more mistakes.

Re:Code reuse, junk food example? (4, Insightful)

syousef (465911) | about 4 years ago | (#34006934)

I've found the best reuse comes from simple modules, not from complex ones that try to do everything. The one that tries to do everything will still be missing the one feature you need. It's easier to add the features you need to the simple one because it's, well, simpler. With the fancier one you have to work around all the features you don't need to add those that you do need, creating more reading time and more mistakes.

Agreed. With most complex frameworks there is also the additional overhead of having to do things in a particular way. If you try to do it differently or need to add a feature that wasn't designed for in the original framework, you often find yourself fighting it rather than working with it. At that point you should ditch the framework, but often it's not your decision to make, and then cost of redoing things once the framework is removed makes it impractical.

Re:Code reuse, junk food example? (2, Insightful)

aztracker1 (702135) | about 4 years ago | (#34007220)

I think this is one of the reasons why jQuery has become so popular... it does "just enough" in a consistent (relatively) way, with a decent plug-in model... so stringing things together works pretty well, and there is usually a plugin for just about anything you'd want/need. Though it's maybe a bit heavier than hand crafted code, stringing jQuery and plugins is less debt, with more reuse. I do have a few things in my current js toolbox... namely some JS extensions, json2 (modified), date.js, jquery, jquery templates and jquery validation... from there I tweak the ui with PIE and wire up the validators... jquery is about 70k (min uncompressed), with 60k for my js/browser extensions, and 60k for jquery extensions... another 20K in site/app scripts... usually dead cache load is around 400k on a page (around 220k with gzip) and in about 12-16 http requests... using deferred script calls, under a second for initial load, and under another 1.4 seconds for js & binding... A bit thick, but works very well.

Re:Code reuse, junk food example? (1)

seebs (15766) | about 4 years ago | (#34007024)

About twenty years ago, I was dating someone who was working on what she called the "Taco Bell theory of fashion", which was that you have a smallish number of items of clothing which all go together.

I think it's just that they're a particularly impressive example, familiar to a lot of people, of an extremely broad variety of foods made from a very small number of ingredients. ... And yes, stringing commands together is, empirically, news to many people, because I keep finding people who can't do it.

Re:Code reuse, junk food example? (1)

syousef (465911) | about 4 years ago | (#34007238)

... And yes, stringing commands together is, empirically, news to many people, because I keep finding people who can't do it.

I don't know how to do surgery, but that doesn't mean basic surgical technique is news.

Re:Code reuse, junk food example? (0)

Anonymous Coward | about 4 years ago | (#34007164)

I think the point is that "crappy" food chain is more successful and has more money than you will ever have or see in your life and they did it with only a couple ingredients. If you can't see that then you are as lost as the rest of the sheeple.

With that said, I'm not sure this article makes any sense. Basically I think it boils down to "make things as simple as possible, but not simpler." -- Einstein, Ockham, et al

Re:Code reuse, junk food example? (1)

jmt9581 (554192) | about 4 years ago | (#34007226)

Seriously, what's going on with the articles here? "My code is like a Taco"? Is that flying because of CmdrTaco's username?

Nothing new here: 1) Code reuse. Woopdeedoo. The whole industry has invested heavily in many paradigms for reusing code: The reusable library, module reuse, object reuse etc. 2) Stringing Unix commands together is news? Did I just take a Deloriane back to 1955? (Well that's a slight exaggeration. Unix has only been around since the 70s)

Finally, who wants to compare their code reuse to a crappy junk food chain? I'd rather think of myself as a professional that earns commensurate pay than a junk food server who needs to be trained to ask "would you like fries with that?".

Maybe you didn't read the article, but you've totally missed the point. The point is that these duct-taped solutions with shell scripts are often good enough for the first draft of an application. The contrast is with many people trying NoSQL and MapReduce systems because they're the flavor-of-the-day. The point is that the Unix paradigm is powerful enough for the first draft of many systems, and depending on your needs might be enough for the final draft. Also, you can be anyone you want in the analogy. Maybe you invented Taco Bell. Maybe you're the person who invented the 4-ingredient Chalupa, which probably makes millions of dollars per year. I never thought that I would be a junk food server. That's clearly a job for a script. :)

Re:Code reuse, junk food example? (1)

alienzed (732782) | about 4 years ago | (#34007252)

Software with a side of fries.... I think you're on to something!

Once again, The Onion shows us the way (3, Funny)

sootman (158191) | about 4 years ago | (#34006794)

From over a decade ago: Taco Bell's Five Ingredients Combined In Totally New Way [theonion.com]

I think of that every time Taco Bell adds a "new" item to their menu.

Re:Once again, The Onion shows us the way (1)

antifoidulus (807088) | about 4 years ago | (#34007122)

Bill Hicks was making that joke even before the inion(and I wouldn't be surprised if domeone was doing it before him). It goes something along the lines of "Why does taco bell even have a menu? Wouldn't it just be easier if they asked you 'How do you want your beams and flour arranged?""

From TFA (3, Interesting)

Jaime2 (824950) | about 4 years ago | (#34006806)

From the article:

I made most of a SOAP server using static files and Apache's mod_rewrite. I could have done the whole thing Taco Bell style if I had only manned up and broken out sed, but I pussied out and wrote some Python.

It seems that only software he knows counts as "Taco Bell ingredients". I'd trust Axis (or any other SOAP library) much more than sed to parse a web service request. Heck, if you discount code that you don't directly maintain, SOAP requires very little code other than the functionality of the service itself. I had a boss like this once. He would let you do anything as long as you used tools he was familiar with, but if you brought in a tool that he didn't know, you had to jump through a thousand extra testing hoops. He stopped doing actual work and got into management in the early 90's, so he pretty much didn't know any modern tool. He once made me do a full regression test on a 50KLOC application to get approval to add an index to a Microsoft SQL Server table.

Simplicity (5, Insightful)

SimonInOz (579741) | about 4 years ago | (#34006808)

The complexity people seem to delight in putting into things always amazes me. I was recently working at a major bank (they didn't like me eventually as I'm bad at authority structures). Anyway the area I was working on involved opening bank accounts from the web site. Complicated, right? The new account holder has to choose the type of account they want (of about 7), enter their details (name, address, etc), and press go. Data gets passed about, the mainframe makes the account, and we return the new account number.

Gosh.

So why, oh tell me why, did they use the following list of technologies (usually all on the same jsp page) [I may have missed some]
HTML
CSS
JSP (with pure java on the page)
Javascript (modifying the page)
JQuery
XML
XSLT
JDBC with Hibernate
JDBC without Hibernate
Custom Tag library
Spring (including AOP)
J2EE EJBs
JMS

Awesome. All this on each of the countless pages, each custom designed and built. Staggering. In fact, the site needed about 30 pages, many of them minor variations of each other. The whole thing could have been built using simple metadtata. It would have run faster, been easier to debug and test (the existing system was a nightmare), and easily changeable to suit the new business requirements that poured in.

So instead of using one efficient, smart programmer for a while, then limited support after that, they had a team of (cheap) very nervous programmers, furiously coding away, terrified lest they break something. And yes, there were layers and layers of software, each overriding the other as the new programmer didn't understand the original system, so added their own. Palimpsest, anyone?

And yet, despite my offers to rebuild the whole thing this way (including demos), management loved it. Staggering.

But I still like to keep things simple. And yes, my name is Simon. And yes, I do want a new job.

Re:Simplicity (5, Insightful)

MichaelSmith (789609) | about 4 years ago | (#34006830)

Complexity creates bugs

Bugs create employment

Re:Simplicity (1)

bmo (77928) | about 4 years ago | (#34006996)

"A bucket of scrap a day keeps the overtime on its way"

--
BMO

Re:Simplicity (3, Interesting)

swamp boy (151038) | about 4 years ago | (#34006886)

Sounds like your coworkers are busily filling out their resumes with all the latest fad software tools. Like you, I despise such thinking, and it's why I pass on any job opportunity where 'web apps' and 'java' are used in the same description.

Re:Simplicity (0)

Anonymous Coward | about 4 years ago | (#34006920)

That's why I pass on any job opportunity where "web apps" or "java" are mentioned.

Re:Simplicity (1)

SanityInAnarchy (655584) | about 4 years ago | (#34006948)

Out of curiosity, what would you use to write a web app in?

Re:Simplicity (1)

swamp boy (151038) | about 4 years ago | (#34007042)

Really, I don't see anything wrong with using Java to write web apps. The problem is when all the 30 different libraries, frameworks, extensions, etc. get thrown in. I steer clear of anything that even mentions Hibernate, Spring (esp. AOP), and any mix of more than about 4 different technologies.

Re:Simplicity (1)

SimonInOz (579741) | about 4 years ago | (#34007296)

What should you write web pages in?

Where possible, I generate them from metadata using Java beans in simple JSP pages.

If you have lots of static pages, what's wrong with HTML + CSS ?

However, we seem to be an incredibly long way from the ideal. Graphic designer ought to be able to format pages so they look great. Programmers ought to be able to code pages so they do the right stuff. We are doing, in my opinion, a miserable job of simplifying development. I have been developing code for almost 40 years, and it has become drastically more difficult - certainly complex - in the last 10-15 (I am reasonably sure it isn't me).

But your point is well made - what's actually good, as opposed to trendy? We have a flurry of frameworks, each more bizarre than the next, each claiming to be the solution to all problems, then fading.

Survivors include Java, JSP, SQL, HTML/CSS, SQL (I am not too keen on Hibernate, personally, it seems to hinder as much as help). Spring seems to be doing really well and I quite like it - used with restraint. I avoid AOP like the plague, because you can never tell what code you are working with, it's too confusing.

We really need to remember the simple rule: if you code something that is at the limits of your understanding, you won't be able to debug it. (That's a misquote from someone, can't remember who).

Re:Simplicity (0)

Anonymous Coward | about 4 years ago | (#34006980)

Simon, like the BOFH? Maybe you should take a hint from the stories and find creative solutions to management problems :)

Re:Simplicity (3, Insightful)

NorbrookC (674063) | about 4 years ago | (#34007032)

It seems to me that the point is that programmers have a variant of "if all you have is a hammer, every problem is a nail" saying. In this case, they have a huge toolbox, so every time they need to drive a nail, it means that they must design and use a methodology that will, eventually, cause the nail to be pushed into place, instead of just reaching for the hammer and getting the job done.

Re:Simplicity (1)

SixDimensionalArray (604334) | about 4 years ago | (#34007038)

Hello, devil's advocate here... I totally agree with the sentiment that keeping things simpler is preferable, and that there are problems created by programmers who either don't care, are trying to preserve their job security (or pad their resumes with buzzwords), don't know better, or don't take the time to think out the design/maintainability of what they are doing.

On a recent project to provide real-time, asynchronously updating, data-driven, interactive graphs and gauges on a modern web application, I had no choice other than to make use of: HTML, CSS, jQuery, Javascript, XML, Flash, PHP, CodeIgniter framework, SQL (MySQL), SimpleUnit, etc. It is always frustrating to realize that we basically have to program in 6 or so different languages/tools (or more) to accomplish something. As you pointed out, even I probably omittted a plethora of other little utilities, supporting infrastructure or OS functionality that was used to support this app.

So, I know your circumstances might have been specific, but, how else do you propose one to meet such a requirement, given today's bag of technology options? The complexity today is just the nature of the beast........ which is why it's ever more important to try darn hard to K.I.S.S.

-6d

Re:Simplicity (1)

antifoidulus (807088) | about 4 years ago | (#34007152)

Part of it is how managers get paid. In a lot of organizations theore people you have under you the higher your salary. So it behooves the manager to make the requirements as complicated as possible in order to rationalize a large head count.

Re:Simplicity (0)

Anonymous Coward | about 4 years ago | (#34007290)

There are many reasons this could have happened. The most common one I have seen is that software was evolved. Because software is changeable, deviation from any simple initial design happens quickly. It is easy to see a complex system that has been developed over 15 years and think about how much simpler you could make it. Naive young programmers often think that their predecessors were incompetent. Dealing with changing requirements, integration with systems that no longer exist, problems with older versions of APIs and development tools all effect decisions made in the past.

The book: The Psychology of Computer Programming has a great example of this happening. It is often impossible to determine a program is overly complex due to limitations of the designers or due to factors you don't know about.

Reference ? (1, Funny)

dargaud (518470) | about 4 years ago | (#34006828)

So now Taco Bell is a reference for both cooking and programming ? I ate there exactly once and it tasted like sucking ass off a dead donkey. I pity the people who've been forced to eat there since a young age and now think this is 'food'. Yeah, flamebait, etc...

Re:Reference ? (1, Funny)

Anonymous Coward | about 4 years ago | (#34007012)

So now Taco Bell is a reference for both cooking and programming ? I ate there exactly once and it tasted like sucking ass off a dead donkey. I pity the people who've been forced to eat there since a young age and now think this is 'food'. Yeah, flamebait, etc...

We should all be thankful we do not have your culinary experiences.

Re:Reference ? (2, Insightful)

lostmongoose (1094523) | about 4 years ago | (#34007016)

I'm more disturbed by the fact that you know what dead donkey ass tastes like...

Re:Reference ? (0)

Anonymous Coward | about 4 years ago | (#34007166)

It's what they serve at Taco Bell?

*ducks*

Re:Reference ? (1)

multipartmixed (163409) | about 4 years ago | (#34007044)

If you had paid attention in shell class and Taco Bell -- you would know that the Taco Bell ingredients are great for quickly passing through your pipeline.

Just - try to pipe it through tail instead of head.

Re:Reference ? (1)

SixDimensionalArray (604334) | about 4 years ago | (#34007066)

We are one step closer to idiocracy [imdb.com] ! I for one welcome my new "AOL Time Warner Taco Bell US Government Long Distance" overlords.

Mmmm.. foamy lattes.

-6d

Re:Reference ? (1, Funny)

Anonymous Coward | about 4 years ago | (#34007156)

I ate there exactly once and it tasted like sucking ass off a dead donkey.

Err...So there is a qualitative difference between sucking ass of a live and a dead donkey - and you know this difference?!

Unexpected (3, Interesting)

DWMorse (1816016) | about 4 years ago | (#34006858)

Unexpected comparison of trained coders / developers, many with certifications and degrees, to untrained sub-GED Taco Bell employee... well... frankly, knuckle-draggers.

Also, I don't care if your code is minimal and profitable, if it gives me a sore stomach as Taco Bell does, I'm opting for something more complex and just... better. Better for me, better for everyone.

I get the appeal of promoting minimalistic coding styles with food concepts, and it's a refreshing change from the raggedy car analogies... but come on. Taco Bell? Really??

Re:Unexpected (1)

Marcika (1003625) | about 4 years ago | (#34007094)

Unexpected comparison of trained coders / developers, many with certifications and degrees, to untrained sub-GED Taco Bell employee... well... frankly, knuckle-draggers.

>

Oh my, aren't we thin-skinned today?

I think you missed the point. The equivalent of the "blank-slate" Taco Bell employee is the blank-slate computer that only executes instructions given to it. The persons who get compared to good developers are the Taco Bell recipe writers, who managed to deliver instructions that yield quick, cheap, consistent and idiot-proof solutions. Many coders with degrees can't say as much.

Re:Unexpected (1)

The Clockwork Troll (655321) | about 4 years ago | (#34007236)

I think it's an apt analogy. Nowhere does Ted comment on the quality of the software per se, just its maintainability/robustness, and ability to make money. Generations of (insert your favorite crappy vendor here) software have taught us that the two are not related.

Re:Unexpected (1)

publiclurker (952615) | about 4 years ago | (#34007350)

Well, they could have referred to Rico's tacos, the truck down the street from me, but then nobody would get the reference. Most people, on the other hand, know about taco bell, even if the Hispanics in the area refer to it as American food.

Right! (0)

Anonymous Coward | about 4 years ago | (#34006864)

Well, actually left, left, left.

Chalupa++ (0)

Anonymous Coward | about 4 years ago | (#34006954)

If the goal is to provide high level primitives that can be aggregated to meet the requirements of a specific task ... It would seem to me this boils down to being so obvious as to not be worth stating.

Is it not always in the best interests of the designer to seek to use the best tool for the job?

Using a shell script is not better than writing a perl program to accomplish the same goal. There are only syntatic differences in how the solution is encoded. Architecturally there is zero difference.

I am wary of examples derived to fit nicely into a pardigram.

Shell programming tends often to break down very rapidly when there is a need for domain specific data processing. It is great for sorting, filtering or aggregation of results unfortunatly not so much beyond that.

I would agree with the statement high level RAD design tools are underused and undervalued in general.

It's easy to overthink even in the simplest cases (3, Insightful)

Meriahven (1154311) | about 4 years ago | (#34006966)

I once had a pair of command line tools that both printed lists of words (usernames, actually, one per row), and I wanted to find out how many unique ones there were. Obviously, the right hand side part of the pipeline was going to be something along the lines of " | sort -u | wc -l", but then I got utterly stuck by the left hand side. How can I combine the STDOUTs of two processes? Do I really need to resort to using temporary files? Is there really no tool to do the logical opposite of the "tee" command?

You are probably thinking: "Oh, you silly person, that's so trivial, you must be very incompetent", but in case you aren't, you might want to spend a minute trying to figure it out before reading on. I even asked a colleague for help before realizing that the reason I could not find a tool for the task was quite an obvious one: such a tool does not exist. Or actually it kinda does, but only in an implied sense: what I was hoping to achieve could be done by the humble semicolon and a pair of parens. I only had to put the two commands in parens to run them in a subshell, put a semicolon in between, so one will run after the other is finished, and I was done. I guess it was just that the logical leap from "This task is so simple, there must be a tool for this" to "just run the commands one after another" was too big for my feeble mind to accomplish.

So I guess the moral of the story is, even if you want to use just one simple tool, you may be overthinking it :-)

What is Devops? (3, Insightful)

hawguy (1600213) | about 4 years ago | (#34006968)

I read the linked Devops article and know even less about than before I read the article. It's full of management buzzwords and I'm sure a CIO would love it, but what does it mean?

How does Devops help?

The Devops movement is built around a group of people who believe that the application of a combination of appropriate technology and attitude can revolutionize the world of software development and delivery.

...

Beyond this multi-disciplinary approach, the Devops movement is attempting to encourage the development of communication skills, understanding of the domain in which the software is being written, and, crucially, a sensitivity and passion for the underlying business, and for ensuring it succeeds.

oh yeah, that clears it up. All it takes is a passion for the underlying business and it's sure to succeed!

Re:What is Devops? (0)

zort (37229) | about 4 years ago | (#34007034)

Devops is about dissolving the line between developers and system administrators. The dissolving of the ITIL model to a more lean organization.

In a closed source environment, devops cant exist. So devops perhaps becomes the evolution of IT shop as a result of open source.

Yes lots of management words - which may put off some people who like to rage against the corporate overlord.

Ted Dziuba in his blog has very clearly expressed his disgust for anyone who cares about their career other than in the 8 hours between 9-5.

He very much likes the divide between developers and administrators, which as a contract programmer is his bread and butter.

But if you’ve worked in a company with strict developer/administrator divisions, you will know how much animosity there is the different management enforced factions point fingers at each others.

In terms of criticism of devops, there is plenty from developers (in this case) and plenty from system administrators. IOM most of it boils down to fear and not wanting to learn new things. I.e. developers who just want to keep tossing code in to production and never seeing it again, and system administrators who want to shove problems back to developers.

I support devops because it emphasizes the ability of people to solve problems, rather than a management structure.

Re:What is Devops? (1)

moonbender (547943) | about 4 years ago | (#34007150)

Wow, that last sentence you quoted sure needs an analytical mind to parse.

Generalized experts (1, Interesting)

Anonymous Coward | about 4 years ago | (#34006988)

This is why I hire generalised experts, not specified experts. The wider the knowledge set of a developer, the better holistic solutions they can provide. Have an oracle dba? Every problem is solved with oracle. Got a java-only dev? Everything solved in java.

Tool sets and solutions on a large/broad project are often solved best with a broad range of technologies understood and built by a team.

The cause of bloatware. (1)

w0mprat (1317953) | about 4 years ago | (#34007000)

If your software project is comparable to crappy fast food then your doing something wrong. Code obesity is killing our kids! On a more serious note, if you're reusing code you may be bringing along a lot of unnecessary fat that you really didn't need to. If you really want a lean mean program you will not be bringing in feature-laden libraries, you'll have to rewrite some stuff yourself.

The very top chefs and cooks will use 5-8 ingredients at the most to make dishes, they understand the importance of simplicity. A few really good ingredients combined expertly is by far the winning strategy. Something like a McDonalds hamburger will have dozens of ingredients when you count all the additives, without which it would be unpalatable.

I've seen some pretty impressive meals with even less ingredients. I worked in a restaurant that perhaps had no more than 20 ingredients on the entire menu at a time, if you exclude condiments.

Seasoned programmers will cook code with color and flavor, not coloring and flavoring.

Re:The cause of bloatware. (1)

multipartmixed (163409) | about 4 years ago | (#34007050)

> The very top chefs and cooks will use 5-8 ingredients at the most to make dishes

Curry, rice, chicken, oil, salt.

That's eight, and boring!

Robustness (1)

Timmmm (636430) | about 4 years ago | (#34007010)

Shell scripting is fine for stuff that *only you* are going to use. It's just not robust enough for use in anything important, that more than one person might actually use. For example, handling paths with spaces is pretty damn hard - loads of scripts can't handle them.

Taco Bell® tasty fake food, anyone?! (1)

Type44Q (1233630) | about 4 years ago | (#34007056)

...by mixing-and-matching roughly eight ingredients

Funny thing, there: it's more like hundreds of ingredients, if you count an ingredient as... well, an ingredient. Hell, even their "tortillas" alone probably have at least three different kinds of preservatives in them. Sure they'll kill you... but hey, in theory your corpse won't need as much embalming if you need enough 7-Layer burritos!

Jim Gaffigan's experience: (3, Funny)

gblackwo (1087063) | about 4 years ago | (#34007080)

Mexican food's great, but it's essentially all the same ingredients, so there's a way you'd have to deal with all these stupid questions. "What is nachos?" "...Nachos? It's tortilla with cheese, meat, and vegetables." "Oh, well then what is a burrito?" "Tortilla with cheese, meat, and vegetables." "Well then what is a tostada?" "Tortilla with cheese, meat, and vegetables." "Well then what i-" "Look, it's all the same shit! Why don't you say a spanish word and I'll bring you something." - Jim Gaffigan

Please stop the metaphors (1, Interesting)

Anonymous Coward | about 4 years ago | (#34007096)

Software development is a craft with already half-a-century of knowledge, full of characteristics of its own. We should stop trying to adapt examples of other craft/engineering/whatever and focus more on ours. We already have some good ideas of what works and what doesn't, and running to the methodological fad of the week is one that doesn't.

Frankly, getting ideas on how to program from how Taco Bell cooks its food? I wonder if I would ever bother to ask cooking tips from RMS.

Ronald McDonald (1)

mcneely.mike (927221) | about 4 years ago | (#34007132)

So what does McDonalds programming look like?

Brainfuck (1)

istartedi (132515) | about 4 years ago | (#34007180)

Brainfuck [wikipedia.org] has just eight commands. Coincidence?

In all seriousness, in pondering the success of In-n-out, a number of things have come up. The simplicity of the menu is part of it; but other things too.

Simply selling few items won't help you if those items are absolute crap. Otherwise, we'd all be eating at Taco Bell every night, discussing our latest Brainfuck coding project.

write it in bash... (0)

Anonymous Coward | about 4 years ago | (#34007212)

... or write a tiny ruby script that does the same in the same amount of code, but resembling English instead of random stuff.

Taco Bell is not innovative. (0)

Anonymous Coward | about 4 years ago | (#34007218)

It's not Taco Bell. It's mexican food. Nearly all mexican food is made from just a few ingredients, mixed different ways.

can i haz taco bell (0)

Anonymous Coward | about 4 years ago | (#34007322)

yo quiero taco bell

Real Programmers crap (0)

Anonymous Coward | about 4 years ago | (#34007378)

I could have done the whole thing Taco Bell style if I had only manned up and broken out sed, but I pussied out and wrote some Python.

Sums up well where this comes from. Who's going to maintain that mess? Or to pick up your genderized metaphor, who's going to clean up after you, chef? There's a reason these tools with their arcane interfaces have become unpopular.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?