Throughout history, the needs of the consumer, hardware limitations, and the capabilities of languages have set a pendulum in motion. At one side, the pendulum dictates that user interfaces be glorified forms with simple request-response semantics. At other times, the pendulum swings to the opposite extreme, and user interfaces become rich and dynamic, but they leave the programmer to deal with increasingly high technical mountains.
This pendulum dictates what compromises must be made at the user interface, but more interestingly, it determines how resources are consumed and allocated on the server, the language choices that impact each layer of an application, and the way we think of generic terms like "server" and "connection".
This talk will focus on the movement of the pendulum. We'll look at what forces in the industry set the pendulum into motion at each point. We'll also look at the way programmers, language designers, and big industry respond. Finally, we'll look at where the pendulum is today, and the implications for the applications we write today.
In this talk, each attendee will:
* Learn how system architectures have evolved throughout history
* Identify key turning points that shaped language and application designs
* Understand how modern expectations and user interface design are shaping applications at each level.
This talk will work across all levels of software developer, from beginner to advanced.
Tony Hoare will open with a 10 minute summary of language features proposed during his career. Each feature was motivated by the desire to reduce the range of programming errors by increasing the range of errors discovered at compile-time and ensuring that those which slip through can be detected and isolated at run-time. Then he and Bruce Tate will introduce the panel and ask the language inventors to give a five minute introduction of their language answering questions like:
* Was ease of writing correct programs and debugging incorrect ones important to the market segment (ecological niche) at which your language was aimed?
* Which particular features of your language met this goal, or tried and failed?
* For what features was correctness sacrificed in the pursuit of alternative goals – eg. compactness, familiarity, compatibility, efficiency, etc?
* In the light of hindsight, what would you have done differently, and why or why not?
This will be followed by a discussion amongst inventors of languages such as F#, Erlang and Hack.
Bruce Tate is a kayaker, author, father of two from Austin, Texas. The CTO for icanmakeitbetter.com is using Elixir to deliver fast, scalable applications.