25 ms·
What Is Code?
- 1wheel 11y agoSource for accompanying interactives - https://github.com/BloombergMedia/whatiscode https://github.com/BloombergMedia/whatiscode
- hodgesmr 11y agohttps://github.com/BloombergMedia/whatiscode/blob/master/scripts/main.js#L203 https://github.com/BloombergMedia/whatiscode/blob/master/scr... which outputs: https://dl.dropboxusercontent.com/s/fbppsat45fdzg25/Screenshot%202015-06-11%2008.55.46.png https://dl.dropboxusercontent.com/s/fbppsat45fdzg25/Screensh...
- errtnsd 11y agoImagine a world where everyone has their own social version of a Github page instead of a Facebook wall.
- seanmcdirmid 11y agoImagine a world where Wikipedia isn't an encyclopedia, but a crowd-sourced collection of all code meticulously indexed and documented that could be written for one language.
- erikb 11y agoImagine there's no heaven (It's easy if you try)
- alaskamiller 11y agoImagine a world where everyone read and writes.
- igravious 11y agoThis is too freaking awesome! Isn't that a seriously mind-bendy kind of article to appear on Bloomberg? Also, isn't it very cool that a whole class of people who may not know a thing about coding (but may be interested) might get to know something about the craft and culture? And it's presented in a very fun, off-kilter sort of way. That must have been a hell of a lot of work. I actually skimmed the second half and the little robot told me I read it all in 16 minutes which was not possible and who was I kidding! I had a thought the other day while browsing Etsy. If software really is a craft, could I fashion a bespoke software creation and sell it on Etsy? I know this might seem like a non sequitur. But, you know, what is code? Why couldn't I do something like that? It's such a strange but vital profession. (Seriously, I would have thought there are a _lot_ more than 11,000,000 professional coders worldwide) and one that is still coming to terms with itself. Inspiring. Note to self, do not think outside the box, code your way out of the box.
- pavlov 11y agoApple's App Store is the Etsy of software.
- igravious 11y agoI was thinking that. But then why is software-dev-as-craft cordoned off from jewellery-making-as-craft and print-making-as-craft and so on. What makes software so special it needs its own little commercial corner of the world? Serious question :)
- pjc50 11y agocould I fashion a bespoke software creation and sell it on Etsy There's tindie (etsy for electronics), but due to the infinitely cloneable nature of code giving it away works much better than trying to sell it for tiny amounts. In someways the demoscene is this area of software craft for the sake of it.
- igravious 11y agoThanks for the heads-up on Tindie. Looks interesting. And I agree with you about the Demoscene. Very much one off creations which is more what I had in mind. I'm imagining extending this idea to software objects that people would like to own, that was personalised to them, that had a strong crafting element, and so on. The reason I'm having trouble articulating it is because I don't think the category of thing exists (yet?)
- xythobuz 11y agoI like the idea, but is there really no way to mute the audio? Sadly I did not finish the article because of that.
- a3n 11y agoThere's audio? I should have unmuted my laptop.
- AlphaGeekZulu 11y ago"is there really no way to mute the audio?" There are so many ways to mute my computer, I wouldn't even know how to list them all. But on top of the list I would start with the volume keys on the keyboard and then with the volume panel in the menubar and then with the audio panel of the system preferences. Towards the far end of the list I would cut the wires to the speakers.
- xythobuz 11y agoVery funny... I currently have other audio playing on my computer that I don't want to stop.
- duiker101 11y agoIf you are on windows you can right click on the tray icon and for the volume and open the volume mixer where you can lower the volume for specific applications, such as your browser.
- squeaky-clean 11y agoBut you can only change the volume of the entire browser, not specific tabs. If you're playing music in another tab, you can't just turn down one tab.
- willhinsa 11y agoYou can mute single tabs in Chrome easily: http://fieldguide.gizmodo.com/mute-noisy-tabs-in-google-chrome-1683215637 http://fieldguide.gizmodo.com/mute-noisy-tabs-in-google-chro... Type this in to the address bar: chrome://flags/#enable-tab-audio-muting Then click Enable under "Enable tab audio muting UI control."
- merrickread 11y agoMy Dad always tells me he flat out does not understand what I do. He respects it, knows it's challenging and fun, but just doesn't get it. I've sent this to him -- he's about 1/4 of the way through and thoroughly enjoying it. This is a very fun read that's worth leafing through
- cordite 11y agoMy father sent a small comment chain to me as well on a topic like this on one of his blog posts. <First guy> June 3, 2015 at 10:12 am I think software developers like to impress people with how many lines of code they can write. <Second guy> June 3, 2015 at 3:31 pm That is not true. A good day is when you leave the office with more powerful software, but fewer lines of code. <First guy> June 4, 2015 at 4:31 am So why is software always getting bigger ? Is it because the marketing people want to add new features all the time ? Does this even apply to free software like browsers and email clients ? ----- Personally, I like writing less code, or reducing code to less code. Less to think about.
- circlefavshape 11y agoMy personal favourite is talking The Business out of things. Solving issues without any coding at all!
- idohealth 11y agoSure, it is a problem. But if you reboot the server everyday, it will not become a problem. No coding at all required.
- jeffreyrogers 11y ago> Does this even apply to free software like browsers and email clients ? The more I get involved in open source the more I think most code bloat is due to people needing their egos validated by getting a commit into a project, regardless of whether the commit is all that useful or not.
- hallac 11y agoYou need to Konami code this bad-boy.
- ChrisArchitect 11y agowow. heh. strange world we live in when the result of that is on bloomberg. What a time to be alive.
- skeuomorf 11y agoSmash the patriarchy! Check the console.
- notNow 11y agoI can't understand the rationale behind this gaudy redesign job that Bloomberg carried out. I just can't wrap my head around it. It just violates everything that I know about web design and usability for news/corporate websites/portals. Maybe they were trying to pull off a Craigslist here but still I can't really stomach these changes.
- pacofvf 11y agoThis is not the main BBG website, but yeah I don't like the new BBG Home page design either, this post design (its a post for bbg/graphics) is actually really awesome and its main purpose is to be stereotypical "nerdy" .
- markbnj 11y agoI've always wanted to attempt this piece: to take all the many layers of abstraction that we deal with, parse them, convert them, and render them through my formidable linguistic talents into one elegant, beautifully constructed piece of prose that magically makes it all comprehensible to lay readers. I haven't yet attempted it, but I give props to Mr. Ford for trying. I'm not surprised he ended up with a novella. Oh, and why does bloomberg.com want to use my web cam?
- npalli 11y ago> Oh, and why does bloomberg.com want to use my web cam? To capture your photo in the certificate of completion.
- apaprocki 11y agoWorth noting -- it is roughly 38k words and is the longest piece ever published by Bloomberg.
- markbnj 11y agoYes, it will tell you that at the end, and mock you if you arrive there too quickly to have read it all :).
- thebiglebrewski 11y agoComputer don't hurt me, don't hurt me, no more
- rafadc 11y agoI'm happy to see that I'm not the only stupid singing this while reading the header XD
- lordnacho 11y agoThe lyrics to the original actually make sense for this altered version: Oh, I don't know why you're not there I give you my love, but you don't care So what is right and what is wrong Gimme a sign --- Oh, I don't know, what can I do What else can I say, it's up to you I know we're one, just me and you I can't go on source: http://www.lyricsondemand.com/onehitwonders/whatislovelyrics.html http://www.lyricsondemand.com/onehitwonders/whatislovelyrics...
- ricklancee 11y agoThe scroll performance was bothering me so much i had to add transform: translateZ(0); to the #background-canvas element of the page to stop the screen painting on every fking scroll; to continue to read in peace without my eyes bleeding. Great article though :)
- Kabukks 11y agoHoly CPU time! That site consumes 100% of my CPU (presumably 100% of one core) whenever it is in the front tab (Firefox/OS X). Anyone else experiencing that or is it just my laptop running wild?
- ParadoxOryx 11y agoSame here on my 2015 MBPr.
- jarek 11y agoInteresting, I was able to read the article just fine on my 2011 Kobo touch. 800 MHz ARM Cortex A8 and whatever Webkit was around in early 2011. The border animations are off but all the text and plain images work. Whatever effects they're running, they did an impressive job with graceful degradation.
- JimmyM 11y agoI've heard tales of AdBlock Plus consuming huge amounts of CPU, especially on large and complex pages.
- Kabukks 11y agoI'm only using Ghostery. Disabling it doesn't help though.
- cmorgan31 11y agoYou'll see similar resource consumption when using event listeners tied to the mouse movement. It's generally not noticed by the general populace, but gives every developer a pause. The page does seem to struggle at times.
- 72deluxe 11y agoVery informative, thanks. In native land we can listen to mouse motion but it is more CPU friendly to have a timer and poll the mouse position periodically, particularly if the location of the cursor causes further processing (like working out what data to display in a popup hint). The good thing with the mouseEnter / mouseLeave is that you can stop the timer and only restart polling when they enter again. Is there a way of doing this on web pages or is it really still just callbacks for mouse motion?
- taternuts 11y agoI had no idea they made an hour long educational video on windows 95 with the cast of Friends! That is awesomely 90's. This is a really cool write up, clearly a lot of work went into it
- mdwrigh2 11y agoA couple parts of it remind me a lot of JBQ's post on "dizzying but invisible depth": https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe
- mdwrigh2 11y agoA couple parts of it remind me a lot of JBQ's post on "dizzying but invisible depth": https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe https://plus.google.com/+JeanBaptisteQueru/posts/dfydM2Cnepe
- TruthSHIFT 11y agoI love how the page calls you out for skimming it instead of reading it.
- oldpond 11y agoI scrolled. I admit it. :)
- mikekchar 11y agoI skimmed and didn't get mocked. I really am a slow reader :-P
- Too 11y agoHuh, is this what caused the whole page to go pixelated and ask for permission to use my camera each time I changed orientation on my tablet? I had to reload the page each time this happened and scroll down to where I was before. Very annoying.
- danso 11y agoPart of me looks at this and thinks, "This is preaching to the choir"...because while the engineer in me appreciates all the layers and explorations...It must be incredibly bewildering to anyone who is not a coder, which is the ostensible audience given that the story starts off with, 'We are here because the editor of this magazine asked me, “Can you tell me what code is?”' But then I see the interactive circuit simulation and think "Fuck it, who cares, this is awesome!". Designing circuits is one of those things that, if I were a self-learned coder instead of a comp. eng major, I would've never delved into...yet learning how to build an adder circuit and getting an appreciation of the most basic building block of computation (and how surprisingly complex it is to just add 1s and 0s) is a profound lesson that I think is essential for me, personally, to really grok programming. All the sections about culture and conferences and etc. are a little bit off-field for me...it's not that I don't think that code and life and human thought and behavior aren't intertwined... * I just think the discussion about conferences reads as if the author doesn't realize that all disciplines spawn conferences and conferences culture. There's nothing particularly unique about code conferences. Not the sexism, not even the nerdiness. I would love to see the OP's editor respond in a not-quite-as-length essay. What did they learn about code after reading the piece that they didn't understand before? edit: * I'm emphatically not arguing "Oh but everyone does conferences shittily so tech conferences shouldn't be shamed". Just that having it in this "What is Code" essay makes it seem as if it's a notable "feature" of programming...but that understates the problem by an order of magnitude. Sadly, it's a feature in most every discipline, and the inherent feature is the gender imbalance, not the topic of the conference. edit: Also, I wished that the section on Debugging was much higher than it is...Robert Read's "How to be a Programmer" [1] makes it the first skill, and that's about the right spot for it in the hierarchy of things. Maybe it gets overlooked because it has the connotation of something you do after you've fucked up. But, besides the fact that programming is almost inherently about fucking up, the skill of debugging really underscores the deterministic, logical nature of programming, the idea that if we have to, we can trace things down to the bit to know exactly what has been fucked up in even the most complex of programs. And that's an incredibly powerful feature of programming...and not very well-emphasized to most non-coders. [1] http://samizdat.mines.edu/howto/HowToBeAProgrammer.html http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
- 11y ago
- ghshephard 11y agoI had to switch to view/source to read the article. Halfway through there was a shopping cart on wheels obstructing the text (ironic). * <div class="videoWrapper"> <div class="videoWrapper2"> <script src='//cdn.gotraffic.net/projector/latest/bplayer.js'>BPlayer(null, {"id":"P4_i7PihRGiWcPh3gdNMhg","htmlChildId":"bbg-video-player-P4_i7PihRGiWcPh3gdNMhg","serverUrl":"http://www.bloomberg.com/api/embed","idType":"BMMR","autoplay":false,"video_autoplay_on_page":false,"log_debug":false,"ui_controls_popout":false,"use_js_ads":true,"ad_code_prefix":"","ad_tag_gpt_preroll":true,"ad_tag_gpt_midroll":true,"ad_tag_sz_preroll":"1x7","ad_tag_sz_midroll":"1x7","ad_tag_sz_overlay":"1x7","ad_network_id_preroll":"5262","ad_network_id_midroll":"5262","ad_network_id_overlay":"5262","ad_tag_cust_params_preroll":"","ads_vast_timeout":10000,"ads_playback_timeout":10000,"wmode":"opaque","use_comscore":true,"comscore_ns_site":"bloomberg","comscore_page_level_tags":{"bb_brand":"bbiz","bss_cont_play":0,"bb_region":"US"},"use_chartbeat":true,"chartbeat_uid":"15087","chartbeat_domain":"bloomberg.com","use_share_overlay":true,"share_metadata":{"canonical_url":"http://bloom.bg/1GzwRDU"},"vertical":"business","ad_tag_overlay":"business/videooverlay","zone":"video","source":"BBIZweb","module_conviva_insights":"enabled","conviva_account":"c3.Bloomberg","width":640,"height":360,"ad_tag":"","ad_tag_midroll":"","offsite_embed":false});</script> http://www.bloomberg.com/api/embed","idType":"BMMR","autopla... </div> </div> * Also - I have no CPU activity at all, so presumably some plugins that are running for others, aren't being executed in my copy of chrome.
- skinofstars 11y agoSounds like a better experience than on Firefox, which fails to load anything, even text, past the first video.
- deleted 11y ago[deleted]
- arxpoetica 11y ago> There have been countless attempts to make software easier to write...Decades of efforts have gone into helping civilians write code...Nothing yet has done away with developers, developers, developers, developers. I still believe. Someday, somewhere, something incredible will emerge for the right-brained bourgeoisie and literati.
- danpat 11y agoTaken to the extreme, could you not consider raising a child the ultimate programming exercise for humans? Perhaps the "right-brained" are already very good at programming other people, working with faulty, non-deterministic, somewhat chaotic computing environments where "left-brained" patterns of software development fall short....
- ForHackernews 11y agoNot just the right-brained. I want that as a professional software developer. I want a computer that will do what I thought, instead of what I foolishly typed. Basically, I want a computer as smart as a good junior dev so I can just yell my brilliant ideas at it, and it will do the dirty work for me.
- murbard2 11y agoThat's only because you think your thought exists and is correct. Programming forces you to confront the fact that it isn't, and that there are many aspects of it that you've overlooked.
- philh 11y agoSo ve wants a computer that can ask for clarification and point out edge cases, like a good junior dev can.
- NoMoreNicksLeft 11y agoAlso one that can figure out the edge cases on its own, because fuck that shit... it's a really simple idea, why can't you make it work?
- leaveyou 11y agoIt's easy: the code is that part of the computer which can't be grabbed and slammed but only cursed.
- OneMoreIdol 11y agoIt's easy to me: the code is the part of the computer which can't be grabbed or slammed but only crushed. That's why I crush it. I crush code.
- aswanson 11y agoI did not expect this good of an article on this subject from a business publication. Well done.
- fargo 11y agobloomberg is mainly a technology company
- apaprocki 11y agoWe make the vast majority of our money from selling our software subscriptions and have ~4k employees in R&D. Depending on what data you use[1], if we were a public company we'd be the 4th largest in the world by revenue. [1]: http://en.wikipedia.org/wiki/List_of_the_largest_software_companies#Forbes_Global_2000 http://en.wikipedia.org/wiki/List_of_the_largest_software_co... (My intention is not to bikeshed over who is or isn't in the "Software & Programming" industry or specific ranking, but to convey a sense of scale)
- hockeybias 11y agoDitto.
- acveilleux 11y agoTime to follow @ftrain on Twitter then.
- aswanson 11y ago"C is a simple language, simple like a shotgun that can blow off your foot... Think of C as sort of a plain-spoken grandfather who grew up trapping beavers and served in several wars but can still do 50 pullups." Most certainly.
- base698 11y agoI kind of like my answer better: http://qr.ae/7NEnT9 http://qr.ae/7NEnT9 The whole post is just a stream of consciousness brain dump that a layman would never understand. I believe it's possible to explain these things without circular reasoning.
- boken 11y ago"What are the major programming languages, and what are they used for?" is a different question than "Can you tell me what code is?" The second can include the first. But if your and Paul Ford's answers were swapped, both questioners would have good reason to say, "That's helpful but not what I was looking for." To extend your kitchen metaphor, you haven't mentioned anything about why or how your instructions would ever work. You've left out the compiler, interpreter, executor: the human. Granted, I think Ford expanded the domain of his question a little further than he needed to, for the sake of what looks to be fun. And I think he occasionally picks a piece of jargon where a clearer, more ordinary word would have done just as well—though I'm not in the mood to dive back into the article to find a case.
- uptownJimmy 11y agoSuperb writing. I wish all professional writers could write this well.
- munificent 11y agoPaul Ford really is in a class all by himself. Everything I've read by him is truly wonderful. As a writer, it's both inspiring ("look how amazing nerdy non-fiction can be!") and soul-crushing ("look how much better someone else is at writing!"). I try to focus on the former, but, man, he really makes the rest of us look like Celene Dion showing up at your dive bar's shitty karaoke night.
- ad-hominem 11y agoCeline Dion would be booed out of my local dive's karaoke night.
- booleanbetrayal 11y ago> “No,” I said. “First of all, I’m not good at the math. I’m a programmer, yes, but I’m an East Coast programmer, not one of these serious platform people from the Bay Area.” seriously?
- ianphughes 11y agoThat jumped out at me too. It colored the remainder of my reading experience.
- booleanbetrayal 11y agoyeah ... trying to put it behind me. this has otherwise been a great high-level introduction to coding.
- eli 11y agoIt's a joke.
- iamcurious 11y agoWell, in the same article he says "A computer is a clock with benefits." So I believe that no, he isn't serious.
- deleted 11y ago[deleted]
- thuuuomas 11y agoResizing my browser window (Firefox 38) in the middle of reading causes a section of the story to loop infinitely.
- krupan 11y agoI'm glad I came here to read the comments that urged me to read on, because I stopped at the point where the VP was whining that his job was on the line and the software guy's wasn't. Made me a little sick to my stomach. In what company is that ever the case? Even if the VP's job is lost (rare occurrence in my experience), the severance package is more than the software person's salary for a year is.
- justinhj 11y agoMy understanding was that the development manager in the taup blazer was an IT consultant brought in to run the project making it a little easier for that person to disappear to the next gig no matter how disastrous the project turned out.
- nickpsecurity 11y agoThat's what I was thinking too. But then they seem like employees in the rest of the story. A little ambiguous.
- krupan 11y agoHmm, that did come out quite negative. I'm sorry. Personal stress coming through.
- krupan 11y agotldr; watch the video: http://www.bloomberg.com/news/videos/2015-06-10/invisible-computer-code-runs-your-life http://www.bloomberg.com/news/videos/2015-06-10/invisible-co...
- ErikRogneby 11y ago"That’s how change enters into this world. Slowly at first, then on the front page of Hacker News." How meta.
- tormeh 11y agoI didn't really understand that part. Care to explain?
- Willson50 11y agoAggregate sites like Hacker News and Reddit make distribution of news and ideas very quick and viral compared to more organic growth such as word of mouth and google.
- ErikRogneby 11y agoNot just distributed very quick but deemed worthy or unworthy very quick by the pseudo-meritocracy that is the "upvote".
- applecore 11y agoWhat a strange, long, rambling novella on programming languages.
- blisse 11y agoThis is the best write-up explaining software I have ever seen. Wow.
- godisdad 11y agobaby don't hurt me baby don't hurt me no more
- panzerfausten 11y agocreated an account just to reply this.
- stigi 11y agoFor reference: What is love by Haddaway https://www.youtube.com/watch?v=K5G1FmU-ldg https://www.youtube.com/watch?v=K5G1FmU-ldg
- curun1r 11y agoI would try to explain it as levels of abstraction and how they extend beyond the computers that execute the code. You can go down through the levels of abstraction, 1 by 1, until the point is made rather than attempting to start from the bottom and work up. So, for example, when talking to the non-technical executive, the first level of abstraction is the technical expert that tries to explain complex technical issues. Below that, there might be a technical management layer that deals with technical issues on a more granular level, but still isn't looking at the code. Below that there's the actual developers who are writing code and are concerned with the actual logic the computer is executing. Below that are the framework authors that abstract away the common parts of writing an application of a certain type. Below that are the language platform authors who write compilers or interpreters that translate the code typed by the programmers into a format that either the computer or a lower-level abstraction (LLMV, etc) deals with. At this point, it's probably not necessary to go any lower, but you can go all the way down to CPU/machine architecture level, if necessary. The key point is that even highly-technical people have to trust the layers of abstraction below the point where they have full understanding. I've been coding for over 20 years and I still only have a cursory understanding of how my compiler is translating the code I write into machine code, let alone how the actual hardware that runs the code. I took EE courses in college and understand the theory, but the implementation by the folks at Intel and other hardware vendors is opaque to me and I'm forced to trust that it works. The coders employed by your company may be able to dig into framework code, but the chances are that they're fully trusting the runtimes that they work with. That trust may be the result of a well-earned reputation or through testing that the claims made by the language runtime are empirically true, but it's still trusting something that they're unequipped to verify themselves. This need to trust bubbles all the way up to senior management. The systems are just too complex for anyone concerned with the finished product to understand the whole picture. That means that, as an executive, you're likely trusting your senior technical leadership. The only way you avoid doing that is to dig in and better understand the abstraction layer they're providing. You can also make that trust easier by doing the same sorts of things that a coder does with their language runtime...give tasks to your abstraction layer and test whether they're completed successfully. And, when those tasks are not completed successfully, don't accept techno-babble responses, dig in to understand the wheres and whys of where things broke down. Likely, the chain of trust of those abstraction layers was broken at some point...figure out where that point was so you can prevent it from happening again. Every abstract layer adds uncertainty to the system. A CPU engineer can tell you how long a small task will take within a ns or so. A compiler engineer can tell you how many CPU cycles an expression will result in and compute an approximate time for a given processor within microseconds. And it continues as you go up the chain until you're talking to senior management and he's giving you swags with a margin of error of months. Understanding this goes a long way towards explaining the behaviors that are so confusing to the non-technical executive. It's intimidating, but the good news is that many of the skills of a good manager are what's necessary to achieve the necessary level of demystifying. The way that you begin to understand these layers of abstraction is through inquiry. Ask the right questions and, over time, you'll understand more and more of how software development happens.
- spb 11y ago"How often are you going to be multiplying sevens and cats? Soooo much." Where the fuck does this meme of "fundamental type mismatches come up all the time in ordinary code" come from? What kind of defective system are people writing where it's normal for strings and numbers to be interpreted relationally (even accidentally)? It sounds like the author is trying to demonstrate the significance of things like syntax transformations and format conversions (like transforming an email address to a mailto link), but that's nothing like "multiplying sevens and cats". It's manipulating things that aren't inherently incompatible - if anything, it's multiplying sevens and "7"s. All these batshit insane contrived examples in asides like http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#fn.14 http://www.bloomberg.com/graphics/2015-paul-ford-what-is-cod... do is make code seem less accessible and comprehensible to anybody who isn't already intimately familiar with what's safe to interpret as sarcasm or hyperbole and what's not, which goes exactly contrary to the stated thesis of the article.
- tdicola 11y agoIt can happen accidentally quite easily. Someone new to a codebase starts hacking in a feature and mistypes a variable as 'value' instead of 'values'. They fail to realize there's already a 'value' variable in the global namespace (perhaps it's a gigantic spaghetti code mess of a file). They don't have good test cases that exercise this exact line and fail to see the bug. Code ships to production, three months later the line runs and explodes.
- maehwasu 11y agoYour example is quite good, although there are far more bulletproof ways than exhaustive test cases to make sure this doesn't happen.
- samspot 11y agoOn the web it's sort of all strings, so it's not hard to be in a situation where you have "length=7" & "cat=tabby" and get into a problem. Beyond that, many developers are in the habit of using primitives for everything, which makes these sorts of errors much more common.
- ryandrake 11y agoIt's 2015. The audience of this article shouldn't even exist. The reader, as described in the article, is a VP who has so little understanding about what it is his company does, that the only meaningful abstraction he can mentally picture is that of his employees "burning barrels of money". Imagine an auto company VP who says "I don't know anything about engines and drivetrains and all that technical stuff. All I know is that when you guys are in a meeting talking about your variable valve timing system, all I smell is money burning!" That would not be acceptable. Yet, here we are, over 30 years after the original IBM PC was released, and there's still a corner-office audience for "what is a computer?"
- spb 11y agoThere are always going to be people like this, in any field. TSR (of Dungeons & Dragons fame) actually had a CEO who forbid her employees from playtesting their products during work hours, calling it "playing games on company time." http://1d4chan.org/wiki/Lorraine_Williams http://1d4chan.org/wiki/Lorraine_Williams
- morganvachon 11y agoDear God, what a disconnect. How does someone with that line of thinking even get a job in the gaming industry? Then again, I'm reminded of a boss I used to have who would ask me to fix the shipping calculator on our web server, then ten minutes later he would poke his head in the door and tell me to "quit playing on the goddamn computer and get some work done!" He didn't realize that "working on the web server" is done at a workstation, not physically taking the server (remotely hosted of course) apart and putting it back together. All he knew was the customers were complaining about the shopping cart module not calculating shipping correctly.
- spb 11y ago> How does someone with that line of thinking even get a job in the gaming industry? The page I linked spells it out in pretty plain terms. In short: being in the right place (in terms of general business experience and family connections) at the right time.
- tolmasky 11y agoMany disclaimers: 1. This clearly took A LOT of work, and I have not finished reading it. I intend to, but as another comment calculated below, that will take around 127 minutes. This comment is simply about the beginning. 2. I'm not 100% certain yet what the intended goal of this article is, so I may just be off base. That being said, my criticisms should be interpreted more as questions, since I'm deeply fascinated with how to make programming more accessible. I hope they are taken as such, and people share their experiences/successes/failures in getting people to understand "what we do". Again, like other commenters here I have suffered the fate of parents not really understanding what you do (unlike the even superficial understanding of what a physicist does). 3. People learn differently, this is me pretending to not know anything and reading this article. It is thus flawed on two axises: I can't know for sure how I would have taken it in, and even if I did, it may be great for most people but bad for me. All that being said, I had a few issues with this article('s beginning) if the goal is to make programming seem understandable to non-programmers. It seems to jump around a lot at the beginning and focus on just how complex everything is. If the goal is "programmers are justified in their work, look how complex everything they deal with is!", then this may be an OK approach. However, if the goal is to help them understand what we do day to day, it may not. Some examples: 1. The early references to math. I once upon a time thought math was a pre-requisite to programming. I have now met enough awesome programmers that are absolute rubbish at math that I no longer believe that to be true. I believe referring to the "math" of things a lot scares people off (makes it seem like "one of those math things math people do" and inaccessible, when in reality your everyday programmer does not do a lot of (complex) math). 2. The early reference to circuits, compilation, and keyboard codes. This is a tremendous amount of scope that is unnecessary in my opinion, and just makes everything seem so obtuse. Showing keyboard codes goes a long way in conveying how much a computer does, but I feel is very confusing in relation to programming. I don't deal with "keyboard codes". We could also get into for example the actual hardware and how even having to deal with denouncing a key is hard! But I think everyone would see why that isn't great for the (introduction) of a programming explanation. 3. The circuits I believe are pretty and let you do things interactively, but I have a hard time believing they convey any information to people not familiar with programming. No one knows what XOR means (which you can flip the gates to), and just furthers the idea that code is this weird incantation we do. More putting them in "awe" of programming than understanding it. Then again, I've been criticized for relying to heavily on analogy. My explanation would probably start with a lot of hand waiving: "lets tell the computer to get a sandwhich shall we?", then trying to get deeper bit by bit, etc. Others have probably tried this and failed, so I am genuinely curious if people walk away from this article feeling like they have a better understanding of things.
- stephengillie 11y agoI think of Minecraft as a visual representation of a database. Every block you see has a set of values, starting with the 3 that determine its location within the world (coordinates) and extending to include block type, which determines other values. And too, even the open spaces. For Minecraft reminds you that a block can occupy any space. Indeed, an open space is a set of blocks whose block type is "open", which makes it both transparent to light sent from neighboring blocks, as well as not blocking player movement.
- whyaduck 11y agoMost games are essentially just massive databases of pretend stuff with an enjoyable alternative to SQL as the interface.
- yellowapple 11y agoThe article ended up just yanking my Firefox session to somewhere in the middle of the page, followed by some Clippy expy nagging me about how fast I'm supposedly reading the article.
- michaelvkpdx 11y agoIntro articles like this do a lot to reveal biases and misunderstandings. Like with Java. The article says "Java= enterprise" but I can tell you the best user experiences I ever saw delivered over the web were those done with Java Web Start (not applets- applications launched in a JVM from the web). I developed several in the day that continued to run for years- because users loved them and they were safe and secure. Why Web Start didn't take over, I have no idea. It was also a superb platform for mobile delivery.
- spb 11y ago> Intro articles like this do a lot to reveal biases and misunderstandings. This is one of the reasons I barely recommend any intro articles in Lean Notes (http://www.leannotes.com/ http://www.leannotes.com/): almost every single one is just a stream of incomplete and incorrect statements about how the world works, based on the author's myopic personal experiences. Rather than properly generalizing and consolidating what needs to be said to convey a full understanding of the topic, most intros settle for the first example they can think of that could be remotely construed as related to the words they've previously used for whatever subject, regardless of whether it has meaning in any context. (Example: saying that type safety prevents you from trying to "multiply seven by cats".) It seems like a pretty Dunning-Kruger thing: the less broad your knowledge is, the more justified you feel in writing an introductory text to the field. The only time I've ever seen somebody actually qualified to write an introductory text actually doing so (as I can immediately recall) is Charles Petzold's [Code: The Hidden Language of Computer Hardware and Software][Code] (although I suspect, from the few excerpts of it I've seen, that Brian Kernighan's "D is for Digital" is good, too). [Code]: http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319/ref=sr_1_1?ie=UTF8&qid=1434047095&sr=8-1&keywords=code+petzold http://www.amazon.com/Code-Language-Computer-Hardware-Softwa...
- benihana 11y agoIgnoring the content, the structure of this article is amazing. It feels like an entire magazine in a single essay. The background animations that change as you scroll, the contextual content (try scrolling really fast). I'm not even all that keen on the bright oversaturated aesthetic, but it's just so cool. I'd love to see a short piece on how they made it.
- thisjepisje 11y agoHave you seen their error pages? http://www.bloomberg.com/lookathis http://www.bloomberg.com/lookathis
- strange_quark 11y agoAlso this one http://www.bloomberg.com/500 http://www.bloomberg.com/500
- loganlucid 11y ago->I'm not even all that keen on the bright oversaturated aesthetic thats right
- Kalium 11y agoI'm thrilled that they dare to have an aesthetic that hasn't been proven on a billion other sites.
- hajile 11y agoI was rather disappointed. I wanted someone to point a finger and yell HAAAAXXXXX!!!
- bjacobel 11y agoIt is, in fact, an entire magazine in one essay. It's the only thing in the most recent issue of BW.
- notNow 11y agoWatch it when capitalists pushing incessantly people to learn coding. They're trying very hard to cut the costs of their input "materials" and they will do everything that they could to devalue us in every way possible. So, if you're a talented and competent dev, be super aggressive with these predators and take everything your hands can grab before they have the upper hand and show us their true colors. Happy Coding!
- serve_yay 11y agoIndeed. Labor costs.
- walterbell 11y agohttp://www.forbes.com/sites/venkateshrao/2012/09/03/entrepreneurs-are-the-new-labor-part-i/ http://www.forbes.com/sites/venkateshrao/2012/09/03/entrepre... "...the balance of power between investors and entrepreneurs that marks the early, frontier days of a major technology wave (Moore’s Law and the Internet in this case) has fallen apart. Investors have won, and their dealings with the entrepreneur class now look far more like the dealings between management and labor (with overtones of parent/child and teacher/student). Those who are attracted to true entrepreneurship are figuring out new ways to work around the traditional investor class. The investor class in turn is struggling to deal with the unpleasant consequences of an outright victory..."
- aswanson 11y agoThis sounds contradicted to the mathematics/empirical/quantitative observations. Startups built on texting two alphabetic characters are attracting million dollar financing rounds. Startups based on erased timeouts of texts are declining 3 billion dolllar acquisition offers. VCs are trying to get deal flow by building the reputation of being the most helpful to entreprenuers. Interest rates are at historic lows and hundred billion dollar pension and mutual funds are pouring money into every 1st to 3rd tier vc to chase returns. tl;dr...this sounds like some bs.
- walterbell 11y ago
- thomasrossi 11y agoCode is a demonstration, the ipothesis are the requisites. Actually, the test class is the proof!
- frik 11y agoGood article. Sub par web design.
- Tycho 11y agoI think of it as a beautiful, colourful, crystalline structure.
- spb 11y ago> Smalltalk’s history is often described as slightly tragic, because many of its best ideas never permeated the culture of code. But it’s still around, still has users, and anyone can use Squeak or Pharo. Also— > > 1. Java is an object-oriented language, influenced by C++, that runs on a virtual machine (just like Smalltalk). > 2. Objective-C, per its name, jammed C and Smalltalk together with no apologies. > 3. C# (pronounced “C sharp”) is based on C and influenced by Java, but it was created by Microsoft for use in its .NET framework. > 4. C++ is an object-oriented version of C, although its roots are more in Simula. > > The number of digital things conceived in 1972 that are still under regular discussion is quite small. (It was the year of The Godfather and Al Green’s Let’s Stay Together.) The world corrupts the pure vision of great ideas. I pronounce Smalltalk a raging, wild, global success. Except that these examples are "object-oriented" in almost none of the ways Smalltalk was object-oriented: http://www.paulgraham.com/reesoo.html http://www.paulgraham.com/reesoo.html The specious reasoning on display in this paragraph is almost offensive in its glib uncomprehension. Calling Smalltalk "a raging, wild, global success" because modern programming languages call themselves "object-oriented" is like saying women in technology are well-represented because Ada Lovelace was the first programmer. I get that it's supposed to be tongue-in-cheek, but like the rest of the writing in this article, it's supposed to be tongue-in-cheek in a way that gestures toward what the author actually thinks. In this case, what it's gesturing at is the notion that Smalltalk has had a large-scale tangible influence (if not wholesale adoption) on modern programming languages, which, if you actually take the time to understand the subject, is just not true.
- deleted 11y ago[deleted]
- lxe 11y ago"If you’re old enough to remember DOS, you know what a command line is." This is a joke right?
- baq 11y agoit's funny because it's true.
- ad-hominem 11y agoYou may be surprised how many programmers don't use CLI. I have clients on windows machines that saw me running git commands in terminal and said "So glad we have a gui to manage this for us"
- toephu2 11y agowhy is it a joke? it's true.
- egocodedinsol 11y agoWhat an ambitious and beautiful piece! A story like this is probably dangerous - it touches on so many ideas everyone will find something to gripe with, and it's hard to make a comprehensive and consistent story. The last time I read something that so awesomely bridged high level abstractions and low-level implementations with a human touch was Godel, Escher, Bach (albeit with a very different feel). Well done.
- sushirain 11y agoHe does mention a "golden braid forever weaving", which is reminiscent of: "Gödel, Escher, Bach. An Eternal Golden Braid"
- clebio 11y agoor 'a mind forever voyaging'.
- radicality 11y agoInteresting, I wouldn't put this anywhere near the level of Godel, Escher, Bach. If you've read GEB and do software development, what actually did you find interesting and beautiful in the article? I've just finished reading the whole piece and I don't think I've learned much at all. Presumably as someone who already knows programming and theoretical CS I'm not the target audience, but then I'm also surprised why this has so many upvotes here on HN.
- jameshart 11y agoThis article is a sociology of code, not a technical manual. You absolutely could get a lot out of it. I get the GP's point about this being reminiscent of GEB, not in the sense that it covers the same topics or is at the same 'level', but in that it describes an intangible idea by approaching it from different angles and describing that same core concept from the shadow it casts in different directions. In GEB that core concept of self-reference was tackled from multiple perspectives so that an image of this common theme emerges as you read these different views onto it. Similarly, this article tries to conjure an image of 'code' as a cultural artifact, by portraying the shapes it casts in different directions - on the people who create it, the people who have to fund it, the tools and artifacts it generates. And it does so, like GEB, with wit and intelligence.
- Erwin 11y agoI like Paul Ford -- first thing that made me subscribe to his Medium feed was this piece about brief, remembering and old computers: https://medium.com/message/networks-without-networks-7644933a3100 https://medium.com/message/networks-without-networks-7644933...
- spb 11y agoThis is supposed to be an introduction just to the abstract concept of code, yet it includes a section that asks the reader to take a test on whether or not they agree with the author on the effectiveness of domain-specific snippets of JavaScript (http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#tinder http://www.bloomberg.com/graphics/2015-paul-ford-what-is-cod...) - one that replies to your selections with obtuse references to the code's use of promises and callbacks. As an outsider, I just love it when I read something presented as an introductory text and I'm confronted with an elaborate series of self-serving in-jokes that go "ha ha ha, ha ha ha, you don't know what I'm talking about!"
- brianpgordon 11y agoIt's just a fun little quiz. I kind of like it as a "reality check" to show the reader that while they may understand the concepts, the reality is much more difficult and fraught with subtle considerations. It also serves as a subtle reminder to readers (who may be the frustrated business-type from the opening of the article) that there's a reason software projects are so hard and cost so much money. Software development isn't something you can grok from reading an article, even a book-length one.
- jameshart 11y ago"This is supposed to be an introduction just to the abstract concept of code" Are you sure that's what it's supposed to be? I mean, the author didn't supply unit tests, all we have to go on is the specification, which was that the editor of BusinessWeek asked Paul Ford "Can you tell me what code is," and Paul Ford said "No", and instead wrote this.
- spb 11y agohttp://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#fn.25 http://www.bloomberg.com/graphics/2015-paul-ford-what-is-cod... > You know what, though? Cobol has a great data-description language. If you spend a lot of time formatting dates and currency, and so forth, it’s got you. (If you’re curious, search for “Cobol Picture clause.”) https://www.google.com/search?q=%E2%80%9CCobol+Picture+clause.%E2%80%9D&oq=%E2%80%9CCobol+Picture+clause.%E2%80%9D&aqs=chrome..69i57&sourceid=chrome&es_sm=0&ie=UTF-8 https://www.google.com/search?q=%E2%80%9CCobol+Picture+claus... What am I supposed to be looking at here?
- matwood 11y agoFun article. Even to this day sometimes I look at the software we have all built and wonder: > It’s amazing any of it works at all.
- glenntzke 11y agoThe activity on the article's accompanying github (https://github.com/BloombergMedia/whatiscode https://github.com/BloombergMedia/whatiscode) is really interesting. Users have suggested edits not only to the code in the article but even to add citation. This adds another dimension to the content by including the open source community such that the subject matter (coders) can influence (and improve!) their article's content.
- marcosero 11y agoThanks for the link! I had no idea it could have been open sourced!
- dankohn1 11y agoI hate to sound hyperbolic, but I can't overstate how impressive this work is. For me, it evokes nothing so much as Tracy Kidder's The Soul of A New Machine [0] for opening up an obscure world (the one many HN posters live in, but obscure to most people). I am amazed both by the technical fidelity and by the quality of the story telling. [0] http://www.amazon.com/Soul-New-Machine-Tracy-Kidder/dp/0316491977/ http://www.amazon.com/Soul-New-Machine-Tracy-Kidder/dp/03164...
- mangeletti 11y agoI agree. This is the best piece of writing I think I've ever read on the web. This touches on everything, and so accurately, and so concisely... this article is giving me a stroke I think.
- meowface 11y agoI've never seen anything like this on a website before. The writing, the formatting, the structure, the animations; it's near perfect.
- jheriko 11y agoare we reading the same article??!?! the content is quite good but the layout, colour, animations etc. are a mess.
- mangeletti 11y agoLook
- meowface 11y agoThere is a fine line between mess and art. :)
- mteruel 11y agoAnd this article just crossed :D
- blahblah3 11y agovery cool article although to a layman I would try to answer "what is code" more simply: code is just instructions. instructions for how to tie a windsor knot or cook a recipe or play a piano piece can be thought of as "code" executed by the human.
- rza 11y agoAnyone know what happens when you allow bloomberg.com to use your camera when you finish reading the article?
- ZoZoBee 11y agoCan't be good, if Bloomberg is for it
- recursive 11y agoDo you consider to be a photo for your certificate of achievement to be good?
- ZoZoBee 11y agoAre you naive enough to not believe the photo will be saved along with a host of other metaData to bloomberg's server?
- rdrey 11y agoWell, you could read the source of course, to see whether the photo data is sent to the server or whether the cert is generated client-side. And then there is this: https://github.com/bloombergmedia/whatiscode/ https://github.com/bloombergmedia/whatiscode/
- recursive 11y agoI could be convinced either way.
- ihuman 11y agoIt adds a photo of you to the certificate, and then allows you to download it.
- ZoZoBee 11y agoWhy did Bloomberg ask to use my camera while reading the article
- recursive 11y agoSo it could take a photo of you for your certificate of achievement
- clebio 11y ago> Writing this article was a nightmare because I know that no matter how many people review it, I’ll have missed something, some thread that a reader can pull and say, “He missed the essence of the subject.” I know you’re out there, ashamed to have me as an advocate. I accept that. I know that what I describe as “compilation” is but a tiny strand of that subject; I know that the ways I characterize programming languages are reductive. This was supposed to be a brief article, and it became a brief book. So my apologies for anything that absolutely should have been here, but isn’t. They gave me only one magazine.
- mkoryak 11y agoi viewed source to see how they did the custom skin and noticed this: if (!console.log) console.log = function(){} shouldnt it be if(window.console) ?
- spitfire 11y agoI would have loved the new Safari mute features on that page.... How dare you pollute my ears with garbage without a mute option.
- andars 11y agoIn my opinion, this is what society today needs. I don't feel like we need everyone to be able to code, but rather just have a sense on some level that computers are nothing mysterious or magical, unconquerable or incomprehensible, but rather just machines of human creation.
- snoman 11y agoNot sure if we were reading the same article or not, but this is not "what society needs." While there is a part of me that loves computing and wants to share it with the world, I also realize that the nuances of compilation or futures are entirely inside baseball and irrelevant to the vast majority of society at large. The computer, for most people, is a tool. A means to an entirely unrelated end.
- kul_ 11y agoWhat a cpu and memory hog that page is!
- kylehotchkiss 11y agohttp://twitter.com/whatiscode http://twitter.com/whatiscode
- uhwhat 11y agoAnyone else find the easter egg ? (..old school video game code)
- minusSeven 11y agoawesome
- tempestn 11y agoWas the bit about PHP standing for Personal Home Page a joke? I always thought it was "PHP Hypertext Preprocessor". The coolest thing about PHP is the infinite recursion in its name!
- apaprocki 11y agoThe print edition has landed! https://twitter.com/ftrain/status/609388625596416001 https://twitter.com/ftrain/status/609388625596416001
- visarga 11y ago> It’s a comedy of ego, made possible by logic gates.
- alanrahn 11y agoVery interesting read... I enjoyed it. One thing I noticed though is that the author is definitely stuck in the old "Microsoft is the great Satan" mindset. If he ever finds out about all the open-source stuff MS is doing these days under Satya Nadella, I think his head would probably explode. He doesn't know what to say to a C# developer (nothing in common), but automatically trusts a Python developer? Really? sigh
- thephyber 11y agoThe Charlie Rose interview about this piece: http://charlierose.com/watch/60575137 http://charlierose.com/watch/60575137
- bradezone 11y agoTLDR, good lord