Think back to the mobile phone you had in 2010. It could access the internet, but it wasn’t such a great experience. On average, people only spent 20% of their time online on their phones back then, according to Zenith, a media agency. Today, by contrast, we spend around 70% of our time on the internet on phones, based on estimates and forecasts for more than 50 countries covering two-thirds of the world’s population. By 2019, Zenith says this will rise to close to 80%. What used to be called “mobile internet” is now just the internet.
A small group of programmers wants to change how people code—before catastrophe strikes. — from the Atlantic Magazine
- Basic Premise: Code is getting too complicated–how to make it work better for humans?
- Example: Problem with 911 calls going out due to simple counter bug
- Software is “eating the world” but unexpected complications create havoc
- Engineering is 1950s state of thinking: simple failures.
- Problem with code is that the complexity is invisible.
- Example of hackers remotely taking over a self-driving car.
- Khan Academy has become perhaps the largest computer-programming class in the world, with a million students, on average, actively using the program each month.
- Bret wants to work with images instead of abstract text.
- Programming should be visual like WYSIWYG programs.
- Airplane engineering has dealt with complexity by writing SCADE product family (for safety-critical application development environment)
- Think: MDE (model driven engineering), so you write logical templates, not hand-written code.
- Documentation is another area where what people want can differ from the code that gets created.
- “Architects draw detailed plans before a brick is laid or a nail is hammered,” he wrote in an article. “But few programmers write even a rough sketch of what their programs will do before they start coding.”
- Programmers tend to be pragmatic and distrust the theoretical, ivory-tower stuff, which also works against programming improvements.
Java is mainly large enterprise back end systems, and some android, and quite a lot of embedded stuff (nominally what it was invented for), and, worryingly, quite a lot of client side GUI stuff.
C++ is used for legacy systems and where you need speed.
C is used where you need speed, have simple programs and memory constraints, and old fashioned unix software.
C# is for windows programming and
PHP is used for relatively simple web stuff, because it’s easy and works and has wide library support
Python is used for what PHP is by better developers, and has brilliant maths libraries so is increasingly used for anything maths related where esoteric things like matlab and R and F# are unhelpfully niche.
Haskell is used for academic curiosity, and some maths stuff.
Perl is dying out, but is still used for unix automation a fair bit.
Q: Web development—with the wide range of backend and frontend languages, frameworks, and all of the tools and dependencies developers deal with on a day-to-day basis building apps and sites—is inherently complex. What advice do you give folks who are just starting out in web development?
2) Second, pick something and get good at it. Pick a single frontend framework and a single backend framework and get to know them well. Try a variety of projects in them; find the places they annoy you; get to know the communities; dig in deep; give back.
–by Matt Stauffer
I remember one of these all-hands meetings, somebody asked a question, and I don’t even remember what the question was,” said Lawson. “But I remember what Jeff’s response was. Jeff said, ‘We are a software company, just as much as that other company down in Redmond,’” a reference to Microsoft (MSFT).
What a great definition of what it is to be a software person: people who solve business problems with magnetic particles; not just developers, but people throughout a company who are able to see business problems who are trying to solve them through this lens. Software people fundamentally believe any problem can be solved once you pull that problem into the realm of software.”
And, “It’s a great time to be a software developer,” said Lawson. That’s because the smartphone is “digitizing” more and more of the world, bringing into into the domain of software.