Software Development Articles

We argue that objects that interact in a distributed system need to be dealt with in ways that are intrinsically different from objects that interact in a single address space. ...
Your team should work like an open source project ...
He then pulled out his laptop, fired up an editor, and started live coding an app. He asked me for my cell phone number and within 30 seconds my phone was ringing. ...
We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. ...
Use the database built for your access model ...
If there was one course I could add to every engineering education, it wouldn’t involve compilers or gates or time complexity. ...
They shouldn’t build those Death Stars anymore. They keep getting blown up ...
Where are programming languages headed? Will there always be many languages, or will there be one ultimate language? ...
A common point of discussion among Go programmers, especially those new to the language, is how to handle errors ...
Hello, world! Today we're going to hear the story of Evil King Java and his quest for worldwide verb stamp-outage. ...
Facebook turned me down. It was a great opportunity to connect with some fantastic people. Looking forward to life's next adventure. ...
The key synchronization primitive behind coroutines is the rendezvous channel, also known as a synchronous queue. ...
In this work, we empirically investigate modern ORM-backed applications’ use and disuse of database concurrency control mechanisms. ...
After 5 years, the time has come. This is my last week as Etsy’s CTO. ...
Microservices are a thing these days... ...
To improve the twitter.com experience for everyone, we’ve been working to take back control of our front-end performance by moving the rendering to the server ...
So we finally have lambda expressions in Java with Java 8... ...
Designing a programming system for understanding programs. ...
We will discuss how event streams can help make your application more scalable, more reliable and more maintainable ...
Monads provide a convenient framework for simulating effects found in other languages, such as global state, exception handling, out- put, or non-determinism. ...
They were just cocktails! For lack of other ingredients, they tried to combine scraps of knowledge from the most diverse fields that seemed to have some relation to the phenomenon Computer. ...
To a great extent the act of coding is one of organization. Refactoring. Simplifying. Figuring out how to remove extraneous manipulations here and there. ...
It’s tempting to use someone else’s code rather than write it yourself. ...
For a successful technology, reality must take precedence over public relations, for nature cannot be fooled ...
Knuth has shown us here how to program intelligibly, but not wisely. I buy the discipline. I do not buy the result. He has fashioned a sort of industrial strength Faberge egg-intricate, wonderfully worked,refined beyond all ordinary desires, a museum piece from the start. ...
The fundamental idea I want to discuss is the definition of an application’s UI as a pure function of application state. ...
I am getting frustrated by the number of people calling any HTTP-based interface a REST API. ...
In recent years, configuration errors (i.e., misconfigurations) have become one of the dominant causes of system failures, resulting in many severe service outages and downtime ...
Mostly functional programming does not work ...
Whether a language can solve the Expression Problem is a salient indicator of its capacity for expression ...
We've known this for some time over here in the ClojureScript corner of the world - all of our collections are immutable and modeled directly on the original Clojure versions written in Java. ...
The barrier to entry for training and experimentation has dropped from the total output of a major research organization to one person, an evening, and a beefy laptop. ...
The benefits of composability are becoming clear in software engineering ...
Many of the winners are Silicon Valley-style entrepreneurial technology companies that are invading and overturning established industry structures ...
When dealing with a sequence of length N, the elements of which we wish to distinguish by subscript, the next vexing question is what subscript value to assign to its starting element. ...
The real world is often asynchronous. Our daily lives consist of many coordinated but asynchronous interactions. ...
Web and mobile applications are increasingly composed of asynchronous and realtime streaming services and push notifications ...
The fundamental problem with taking a remote operation and wrapping it up so that it looks like a local operation is that the failure modes of local and remote operations are completely different. ...
The key to making programs fast is to make them do practically nothing. ...