Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
History of Computer Systems  Why we are doing it that way      from a modern web perspective lorieri@ google mail dot com
Agenda      0 - Goals, Who I am   Past       1 - First Computer    2 - Commercial Era    3 - Interpreters    4 - Integrate...
Goals <ul><li>  Internet development  is not as easy as it was  few years ago </li></ul>   -  by past and present facts , ...
Who I am not <ul><li>  - not a developer </li></ul><ul><li>  - not a scientist </li></ul><ul><li>  - not an english natura...
1 - Beginning, First Electric Computer <ul><li>   - General-purpose computers </li></ul><ul><li>   - Low CPU power </li></...
2 - Commercial era, Business computers <ul><li>  </li></ul><ul><li>Business required:   Less cpu  power and lots of storag...
Business and Science   Data Processing                     Calculation  
3 - Interpreters  <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Language abstractions using interpreters to help on  pro...
from Tanenbaum's book from Tanenbaum's book
4 - Integrated Circuit <ul><li>  </li></ul><ul><li>  Beginning of  Moore's law : </li></ul><ul><li>    CPU power will grow...
So what to do with so much power ?   - Now it was time to share CPU little pieces of time among multiple processes (Virtua...
5 - Multi-programming <ul><li>  </li></ul><ul><li>  - Introduction of the &quot;THE Multiprogramming System&quot;, </li></...
System Levels +Access Control +Bugs +Complexity   =HACKERS !!!
6 - Networks <ul><li>  </li></ul><ul><li>  Multi-programming required multi terminals, and  to glue   </li></ul><ul><li>  ...
7 - Mainframes   Piles of CPUs in a huge and very              expensive machine to process                       large am...
8 - Personal Computers <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Terminals grew and became Personal Computers </li><...
9 - Some chaos <ul><li>  </li></ul><ul><li>Network + bugs + popularization led to a hardware based security </li></ul><ul>...
10 - Popularization <ul><li>  </li></ul><ul><li>- More and better networks </li></ul><ul><li>- Memory and storage sizes in...
11 - Client/Server era (latency era) <ul><li>  </li></ul><ul><li>  Small machines  had enough power to centralize specific...
Business   Mainframes                     Client/Server
12 - Dynamic Content Internet <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Shopping !! And  Money  !! </li></ul><ul><li...
Shopping = Money Time is Money Time = High Availability Shopping = User Experience
People started to comment above previous messages in replied emails
13 - Physics Chaos   <ul><li>Death of Moore's laws </li></ul><ul><li>  - Necessity of more software innovation </li></ul><...
14 - Parallelism now crucial <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Only way  to increase CPU power </li></ul><ul...
... and after so long Windows learned how to use execution levels, virtual memory and decreased their system's crashes :)
15 - Virtualization <ul><li>  </li></ul><ul><li>  - Multi-processing brought Virtualization to small machines </li></ul><u...
Business   Mainframes                     Client/Server
<ul><li>Mainframes had been working with parallelism, hardware caches, virtualization, multi-core, multi-cpus, </li></ul><...
16 - Actual situation <ul><li>Data size increasing  tremendously, specially by social media and user </li></ul><ul><li>gen...
17 - How software helped ? <ul><li>  - Separate the disc accesses ? </li></ul><ul><li>  - Fit everything in memory ? </li>...
18 - Accesses even slower (I/O) <ul><li>  </li></ul><ul><li>More latency,  resources are now outside the machines </li></u...
http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf 1 ns = .000000001 seconds worse for multi-cp...
19 - Much more challenges      <ul><li>  More complexity =  more failures </li></ul><ul><li>         New (old) law: fault ...
<ul><li>  </li></ul><ul><li>Having more environments before production is not bureaucracy, </li></ul><ul><li>is freedom </...
20 - and the SSD ? <ul><li>  - At the beginning SSD was  too buggy  and had low lifetime </li></ul><ul><li>  - SSD was wel...
21 - *aaS Era <ul><li>  </li></ul><ul><li>  *aaS = * as a Service </li></ul><ul><li>Remember the  Mainframe ? Evolved to b...
22 - New World Order <ul><li>  </li></ul><ul><li>-  Nightly updates  even for SO, github, high frequency API changes </li>...
Message-passing and event-driven programming is exactly how the kernel has worked for 40 years
Y U NO PARALLELIZE EASILY !?!?!?!
23 - Why web devs don't parallelize ? <ul><li>  </li></ul><ul><li>&quot;However,  new technologies  have always been dif- ...
24 - Acceptance of new technologies <ul><li>Still, and if they you want to  replace all the cars  with something else ?  <...
<ul><li>Talking about cars, you can't change only your car and  expect all your </li></ul><ul><li>       neighborhood is a...
26 - New languages <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>New languages are coming to  break the </li></ul><ul><l...
27 - ORM, not now  <ul><li>Abstraction  requires power , OOP came to web 40 years after invented, </li></ul><ul><li>Web te...
    Matt Yonkovit - at Percona Live NYC 2011     http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaL...
28 - And where is Science ? <ul><li>  </li></ul><ul><li>Scientific Computing last words are: </li></ul><ul><li>   GPU: Gra...
29 - Future ? <ul><li>Stop thinking sequential and serial </li></ul><ul><li>&quot;Compute Local, Act Global. </li></ul><ul...
<ul><li>  </li></ul><ul><li>  </li></ul><ul><li>&quot;A new vogue for the now generation  </li></ul><ul><li>A new profit i...
Upcoming SlideShare
Loading in …5
×

History of Computer Systems - Why we are doing it that way

4,170 views

Published on

- by past and present facts, try to help new web professionals understand why web development is going that way: why queues, why caches, why REST, why NoSql, etc

- try to illustrate how and why old technologies were re-packed to help on web development

Published in: Technology
  • Be the first to comment

History of Computer Systems - Why we are doing it that way

  1. 1. History of Computer Systems Why we are doing it that way      from a modern web perspective lorieri@ google mail dot com
  2. 2. Agenda    0 - Goals, Who I am   Past      1 - First Computer   2 - Commercial Era   3 - Interpreters   4 - Integrated Circuits   5 - Multi-programming   6 - Networks   7 - Mainframes   8 - Personal Computers   9 - Some chaos 10 - Popularization 11 - Client/Server era 12 - Dynamic Web 13 - Physics chaos 14 – Parallelism now crucial Present   15 - Virtualization   16 - Actual situation   17 - Softwares   18 - I/O   19 - More Challenges   20 - SSD   21 - *aaS era   22 - New World Order   23 - Parallelization   24 - Acceptance   25 - Maintainability   26 - Languages   27 - ORM     Future      28 - Science   29 - Future
  3. 3. Goals <ul><li>  Internet development is not as easy as it was few years ago </li></ul>  - by past and present facts , try to help new web     professionals understand why web development     is going that way: why queues, why caches,     why REST, why NoSql, why processes, etc   - try to illustrate how and why old technologies     were re-packed to help on web development   - be famous and rich and people think I'm smart
  4. 4. Who I am not <ul><li>  - not a developer </li></ul><ul><li>  - not a scientist </li></ul><ul><li>  - not an english natural speaker </li></ul><ul><li>  - not an historian </li></ul><ul><li>  </li></ul>  I'm a just an &quot;old&quot; uncle, and sysadmin     -  &quot;introduction&quot; and &quot;First&quot; can mean &quot;become popular at some point&quot;       or &quot;it is now time to talk about it in the presentation&quot;     - &quot;Hacker&quot; here is Cracker, the bad guy     - Sequence of facts are not accurate
  5. 5. 1 - Beginning, First Electric Computer <ul><li>  - General-purpose computers </li></ul><ul><li>  - Low CPU power </li></ul><ul><li>  - Low Memory space </li></ul><ul><li>  - No Disc </li></ul><ul><li>  - Only Machine language </li></ul><ul><li>  - Low I/O </li></ul><ul><li>  - Low and expensive manpower, only scientists </li></ul><ul><li>   - Very expensive hardware, built in Laboratories </li></ul><ul><li>  - Only for government and institutions </li></ul><ul><li>  - Bugs: insects close to the hot hardware parts </li></ul><ul><li>  No network  </li></ul><ul><li>     </li></ul>
  6. 6. 2 - Commercial era, Business computers <ul><li>  </li></ul><ul><li>Business required:  Less cpu power and lots of storage to process data </li></ul><ul><li>  </li></ul><ul><li>  - From 1795's textile looms technology, punched cards were used as primary  </li></ul><ul><li>  medium for data entry, data storage and processing </li></ul><ul><li>- Expensive CPU time, regular programmers had no access to the computer </li></ul><ul><li>- Batch programming,  maximization of cpu time usage </li></ul><ul><li>- Easier tasks brought more manpower </li></ul><ul><li>  </li></ul><ul><li>- Costs dropped with commercial vendors </li></ul><ul><li>  </li></ul><ul><li>- Introduction of LEO, </li></ul><ul><li>  the first business computer, my name ;)  </li></ul>First &quot; Fad &quot; :       Batch's CPU utilization                     vs       Multi-programming's people productivity
  7. 7. Business and Science   Data Processing                     Calculation  
  8. 8. 3 - Interpreters <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Language abstractions using interpreters to help on productivity </li></ul><ul><li>    1 - Load the interpreter from the cards </li></ul><ul><li>    2 - Load the Code from the cards </li></ul><ul><li>    3 - Execute Code in memory </li></ul><ul><li>    4 - Print results </li></ul><ul><li>    5 - Erase/Clean memory for next batch </li></ul><ul><li>  </li></ul><ul><li>- Introduction of tapes , you could load things in tape before processing </li></ul><ul><li>   </li></ul><ul><li>- Beginning of hardware abstraction layer ( System Calls ) </li></ul><ul><li>    (if you want to blame the guy who invented frameworks, he lived here) </li></ul><ul><li>- Students were the new manpower </li></ul>
  9. 9. from Tanenbaum's book from Tanenbaum's book
  10. 10. 4 - Integrated Circuit <ul><li>  </li></ul><ul><li>  Beginning of Moore's law : </li></ul><ul><li>   CPU power will grow exponentially over the time </li></ul><ul><li>  - Significant drop on the size of the components </li></ul><ul><li>  - Much more CPU POWER !!! </li></ul><ul><li>  - More memory space  </li></ul><ul><li>  - More storage space </li></ul><ul><li>  - I/O (data transfer speed) increased </li></ul><ul><li>  - Popularity brought more manpower </li></ul><ul><li>  - Costs and Prices dropped due manufacture lower cost </li></ul><ul><li>  </li></ul>
  11. 11. So what to do with so much power ?   - Now it was time to share CPU little pieces of time among multiple processes (Virtual multi-tasking)
  12. 12. 5 - Multi-programming <ul><li>  </li></ul><ul><li>  - Introduction of the &quot;THE Multiprogramming System&quot;, </li></ul><ul><li>   a multi-tasking Operating System </li></ul><ul><li>  </li></ul><ul><li>      - THE introduced bugs by separating memory spaces among </li></ul><ul><li>          non-experienced users/developers from the core system </li></ul><ul><li>  </li></ul><ul><li>      - THE introduced the execution levels , separating buggy </li></ul><ul><li>          high-level code from core low-level code </li></ul><ul><li>      - THE introduced memory swapping </li></ul><ul><li>  </li></ul><ul><li>  - Introduction of file system abstraction layer, pieces of  </li></ul><ul><li>   memory became persistent files </li></ul><ul><li>  </li></ul><ul><li>  - Introduction of Inter-Process Communication </li></ul><ul><li>  - Concepts of error handling <-------------- </li></ul>Not a fad anymore  
  13. 13. System Levels +Access Control +Bugs +Complexity   =HACKERS !!!
  14. 14. 6 - Networks <ul><li>  </li></ul><ul><li>  Multi-programming required multi terminals, and to glue   </li></ul><ul><li>   terminals and the Central Systems a network was required </li></ul><ul><li>  - More manpower of students </li></ul><ul><li>  - Popularity among universities </li></ul><ul><li>  - Brought more creativity and collaboration </li></ul><ul><li>  - More Hackers </li></ul><ul><li>  </li></ul><ul><li>  - More Bugs                                                    </li></ul>
  15. 15. 7 - Mainframes   Piles of CPUs in a huge and very             expensive machine to process                       large amount of data quickly   - Money and time was crucial:                               fault tolerant hardware   - Very few and slow wide area networks                       contributed to centralization   - Centralized costs of maintenance   - Beginning of Virtualization   - Introduction of hypervisors   - Very specialized manpower
  16. 16. 8 - Personal Computers <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Terminals grew and became Personal Computers </li></ul><ul><li>  </li></ul><ul><li>  - Fits business basic needs </li></ul><ul><li>  - Games ! </li></ul><ul><li>  - Could be used to connect to central computers </li></ul><ul><li>  </li></ul><ul><li>  - No time-sharing, no multi-tasking </li></ul><ul><li>  </li></ul><ul><li>  - Introduction of DBM style key-value </li></ul><ul><li>   databases, to persist memory data on disc. </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  - Microsoft launched a popular cheap Operating </li></ul><ul><li>   System for small machines </li></ul>
  17. 17. 9 - Some chaos <ul><li>  </li></ul><ul><li>Network + bugs + popularization led to a hardware based security </li></ul><ul><li>    solution: the MMU </li></ul><ul><li>  </li></ul><ul><li>   MMU maps the memory to create/translate virtual memory </li></ul><ul><li>   addresses so a program can't steal spaces from each other </li></ul><ul><li>  </li></ul><ul><li>Btw, at that time, the law was: computers reduce duplications of data </li></ul><ul><li>and it saves resources. </li></ul><ul><li>  </li></ul><ul><li>Memory size still a fraction of storage size. </li></ul>
  18. 18. 10 - Popularization <ul><li>  </li></ul><ul><li>- More and better networks </li></ul><ul><li>- Memory and storage sizes increased </li></ul><ul><li>- More bugs and hackers </li></ul><ul><li>- Knowledge and manpower increased </li></ul><ul><li>- Lower prices !! </li></ul><ul><li>  </li></ul><ul><li>  Introduction of the Relational Databases (SQL) </li></ul><ul><li>  Introduction of the Free/Open Source Software </li></ul>
  19. 19. 11 - Client/Server era (latency era) <ul><li>  </li></ul><ul><li>  Small machines had enough power to centralize specific tasks </li></ul><ul><li>  - Part of the processing migrated from the central computer </li></ul><ul><li>   to the terminals </li></ul><ul><li>  - Mainframes started to disappear </li></ul><ul><li>  - Introduction of the router: INTERNET became reality </li></ul><ul><li>  - Small and static websites </li></ul><ul><li>  - Simpler machines = more vendors </li></ul><ul><li>  - Internet brought easy knowledge access </li></ul><ul><li>  </li></ul><ul><li>  - Manpower starts to be more expensive than CPU time, focus on productivity </li></ul>
  20. 20. Business   Mainframes                     Client/Server
  21. 21. 12 - Dynamic Content Internet <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Shopping !! And Money !! </li></ul><ul><li>- Introduction of Virtual Hosts : 1 computer = many sites </li></ul><ul><li>- Introduction of PHP: simple programming for internet </li></ul><ul><li>      (Open-Run-Die)*million style = high scalability </li></ul><ul><li>  </li></ul><ul><li>- Introduction of RPC   = Remote Process Communication </li></ul><ul><li>- MMU concept to virtualize IPs: Ip Masq </li></ul><ul><li>- Manpower increased building millions of small and simple </li></ul><ul><li>internet systems </li></ul><ul><li>- More bugs, more hackers  </li></ul>
  22. 22. Shopping = Money Time is Money Time = High Availability Shopping = User Experience
  23. 23. People started to comment above previous messages in replied emails
  24. 24. 13 - Physics Chaos <ul><li>Death of Moore's laws </li></ul><ul><li>  - Necessity of more software innovation </li></ul><ul><li>  </li></ul><ul><li>  - Bigger Hard disks, but speed not increasing enough </li></ul><ul><li>   On the other hand, faster and cheaper memories !!! </li></ul><ul><li>  - Fancy and strange names for computer specialists: </li></ul><ul><li>   - Engineer </li></ul><ul><li>   - Architect </li></ul><ul><li>   - &quot;Operator&quot; replaced by &quot;System Administrator&quot; </li></ul><ul><li>  - Moore's law is also a Goal , and having a goal is great </li></ul>
  25. 25. 14 - Parallelism now crucial <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Only way to increase CPU power </li></ul><ul><li>  </li></ul><ul><li>- Multi CPUs systems, multi core CPUs, multi threaded cores  </li></ul><ul><li>- Real multi-tasking !!! </li></ul><ul><li>- Many many bugs </li></ul><ul><li>- Cheaper memories everywhere as buffers and caches : </li></ul><ul><li>      - File systems buffers and caches </li></ul><ul><li>     - CPU cache </li></ul><ul><li>     - Hard Disc buffers and caches </li></ul><ul><li>     - Disc controllers buffers and caches </li></ul><ul><li>Amdahl's law : &quot;...if 95% of the program can be parallelized, the theoretical maximum speedup using parallel computing would be 20× ..., no matter </li></ul><ul><li>how many processors are used.&quot; </li></ul>
  26. 26. ... and after so long Windows learned how to use execution levels, virtual memory and decreased their system's crashes :)
  27. 27. 15 - Virtualization <ul><li>  </li></ul><ul><li>  - Multi-processing brought Virtualization to small machines </li></ul><ul><li>     - Lots of small/slow/old systems virtualized in a single machine </li></ul><ul><li>  - Easier to run tests and POC </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  But disc access speed that was slow, became even slower </li></ul><ul><li>  when divided for many virtual systems, regular computer </li></ul><ul><li>  has not same I/O latency as Mainframes </li></ul>
  28. 28. Business   Mainframes                     Client/Server
  29. 29. <ul><li>Mainframes had been working with parallelism, hardware caches, virtualization, multi-core, multi-cpus, </li></ul><ul><li>for 50 years. For same reasons. </li></ul><ul><li>(but with lower latency) </li></ul>
  30. 30. 16 - Actual situation <ul><li>Data size increasing tremendously, specially by social media and user </li></ul><ul><li>generated content, but: </li></ul><ul><li>  - CPU power not increasing enough </li></ul><ul><li>  </li></ul><ul><li>  - Storage and network bandwidth increasing, </li></ul><ul><li>      but latency decreasing in very low rates </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Meaning: Central database is now the bottleneck. </li></ul><ul><li>   bandwidth = total size of all operations by a given time </li></ul><ul><li>   latency = time taken of each operation </li></ul><ul><li>   Databases do ~ thousands small operations per second, </li></ul><ul><li>   not few big operations. Operations that you should not cache or buffer. </li></ul>
  31. 31. 17 - How software helped ? <ul><li>  - Separate the disc accesses ? </li></ul><ul><li>  - Fit everything in memory ? </li></ul><ul><li>  - Break the law and duplicate data to avoid disc accesses ? </li></ul>We did it all, by putting a network layer in everything and using more and more cheap machines (Federate)     - PHP (Open-Run-Die)*millions style required optimizations      - no cheap shared memory, no cheap communication, no cheap locking   - Data distribution and tasks distribution, more backend pieces .     Now you can set up a load balancing in minutes with few bucks Remember the IPC and RPC ? Evolved to be API ,         &quot;Inter-Application Communication&quot;     - Massive use of Soap and REST
  32. 32. 18 - Accesses even slower (I/O) <ul><li>  </li></ul><ul><li>More latency, resources are now outside the machines </li></ul><ul><li>  - Caches left the local machine to become dedicated systems </li></ul><ul><li>  </li></ul><ul><li>  - Buffers and some RPCs grew too, but high network and TCP </li></ul><ul><li>   overheads led to  Queues and Message Brokers </li></ul><ul><li>  - Slower response time led to Asynchronous approaches </li></ul><ul><li>  - Error handling is more important than ever </li></ul><ul><li>  Remember the DBM ? It left the machine too, got a network </li></ul><ul><li>  layer and became NoSql systems </li></ul><ul><li>  Remember the MMU ? Had a grandson called: </li></ul><ul><li>      Hash Partitioning (DHT - Distributed hash table) </li></ul><ul><li>  </li></ul><ul><li>  - Starting trade among consistency, availability and distribution ( CAP ) </li></ul>
  33. 33. http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf 1 ns = .000000001 seconds worse for multi-cpu and virtual machines how many hardware pieces between US and EU can fail ?
  34. 34. 19 - Much more challenges      <ul><li>  More complexity = more failures </li></ul><ul><li>        New (old) law: fault tolerance  </li></ul><ul><li>  - Complexity required more abstraction and led to a sea of Frameworks </li></ul>  Remember the system execution levels ?     They left the computers, became environments :         - Development Environment         - Testing Environment         - Staging Environment         - Production Environment   You can't just copy files around and rollbacks are not trivial anymore   Mixed technologies and complex environments brought to web deploys    automation , packaging and processes to keep control and minimize incidents   A big problem: access control is now world wide 
  35. 35. <ul><li>  </li></ul><ul><li>Having more environments before production is not bureaucracy, </li></ul><ul><li>is freedom </li></ul>
  36. 36. 20 - and the SSD ? <ul><li>  - At the beginning SSD was too buggy and had low lifetime </li></ul><ul><li>  - SSD was welcome, but to join the party , not to stop it. It </li></ul><ul><li>    also came too late. The  revolution  had started already,  </li></ul><ul><li>   software development was boring, the  revolution  brought  </li></ul><ul><li>   excitement and great challenges, impossible to go back </li></ul><ul><li>  </li></ul><ul><li>  - Still too expensive </li></ul><ul><li>  - Being used as huge buffers and caches, faster than </li></ul><ul><li>    networks, slower than RAM Memory </li></ul><ul><li>  </li></ul>
  37. 37. 21 - *aaS Era <ul><li>  </li></ul><ul><li>  *aaS = * as a Service </li></ul><ul><li>Remember the Mainframe ? Evolved to be the cloud </li></ul><ul><li>- Pay-per-use model, like electric and phone bills </li></ul><ul><li>- Service aaS: &quot;Gimme a login and password” </li></ul><ul><li>- Hardware aaS:   Remember the system call ? Became &quot;cloud call&quot; , </li></ul><ul><li>  and a resource can be an entire hardware instance. </li></ul><ul><li>  - resources waste help, no capacity plan for peaks </li></ul><ul><li>- Software (or Platform) aaS: Hardware abstraction, </li></ul><ul><li>    pay per API usage quota - Deploys becoming commodity </li></ul>
  38. 38. 22 - New World Order <ul><li>  </li></ul><ul><li>- Nightly updates even for SO, github, high frequency API changes </li></ul><ul><li>- Systems that were born to be distributed and event-driven  </li></ul><ul><li>   programming now on websites (Erlang, Nginx, NodeJS) </li></ul><ul><li>- Functional languages (stateless, easy to distribute) </li></ul><ul><li>- Use more and more the browser to store, to process and to cache   </li></ul><ul><li>  and now to store DATA!!! Mass usage of JSON communication </li></ul><ul><li>- Human beings communicating as IPC (Twitter) </li></ul><ul><li>- Plenty of devices , not only regular computers </li></ul><ul><li>- Opposite to Mainframe times, Data is larger than a single computer  </li></ul><ul><li>    can hope to process </li></ul><ul><li>            - Map-reduce for so many data processing </li></ul>
  39. 39. Message-passing and event-driven programming is exactly how the kernel has worked for 40 years
  40. 40. Y U NO PARALLELIZE EASILY !?!?!?!
  41. 41. 23 - Why web devs don't parallelize ? <ul><li>  </li></ul><ul><li>&quot;However, new technologies have always been dif- ficult to use at introduction, but have invariably be- come easier over time. For example, there was a time when the ability to drive a car was a rare skill , but in many developed countries, this skill is now commonplace. This dramatic change came about for two basic reasons: (1) cars became cheaper and more readily available , so that more people had the opportunity to learn to drive, and (2) cars became simpler to operate , due to automatic transmissions, automatic chokes, automatic starters, greatly im- proved reliability, and a host of other technological improvements.&quot; </li></ul><ul><li>http://kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2011.01.02a.pdf </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>This also means: business area, because business requires productivity and low risks, </li></ul><ul><li>                          so things are slower </li></ul>Is Parallel Programming Hard, And, If So,What Can You Do About It? Edited by: Paul E. McKenney Linux Technology Center IBM Beaverton [email_address] January 2, 2011
  42. 42. 24 - Acceptance of new technologies <ul><li>Still, and if they you want to replace all the cars with something else ?  </li></ul><ul><li>Douglas Crockford   thoughts (http://yuiblog.com/crockford/): </li></ul><ul><li>  </li></ul><ul><li>&quot;The people who should be the first to recognize the value of an innovation </li></ul><ul><li>   are often the last.&quot;  </li></ul><ul><li>And most of time, he is talking about developers </li></ul>When chip companies were rushing to 16 bits:   &quot; Intel went to a different direction...&quot; &quot;...total disaster&quot; &quot;...go back to 8 bits... try to capture the business of 8 bits by making a machine that was assembly language compatible ...&quot; And Intel keeps doing it since then, but we don't know until when, get prepared &quot;This is a great time to be a programmer, we have a lot of choices, we need to be smart about making those choices and be open to accepting the new ideas because there is a lot of new ideas out there, we shouldn't be rejecting just because they are unfamiliar and we don't see the need for it &quot;
  43. 43. <ul><li>Talking about cars, you can't change only your car and expect all your </li></ul><ul><li>      neighborhood is adapted to it and want to share the prices of the changes </li></ul><ul><li>At companies, it is not only about acceptance , it is also about having enough tools for </li></ul><ul><li>development productivity, enough libraries, integration with processes and automations (such as tests and security scans), co-workers willing and having time to help and learn something new, having good community support, proven good hardware and human resources usage , etc... </li></ul><ul><li>&quot;You are not Google, Amazon or Facebook&quot; </li></ul><ul><li>  -Ivan Ribeiro, at the presentation &quot;You shall </li></ul><ul><li>                        Not Get Excited&quot;, talking about </li></ul><ul><li>                        his 2-3 years journey to use </li></ul><ul><li>                        Erlang in production </li></ul><ul><li>http://www.slideshare.net/x697272/you-shall-not-get-excited-5851097  </li></ul>25 - Maintainability
  44. 44. 26 - New languages <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>New languages are coming to break the </li></ul><ul><li>traditional &quot;LAMP&quot; stack and help to </li></ul><ul><li>bring other technologies to the Web </li></ul><ul><li>  </li></ul><ul><li>But sometimes they change it too much, </li></ul><ul><li>for example: </li></ul><ul><li>  </li></ul><ul><li>     4 most popular languages are: </li></ul><ul><li>          C, Java, Php, JavaScript, all based in same syntax </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>Syntax changes are often justified by trying new approaches and bringing new </li></ul><ul><li>technology, what we don't need are changes on syntax that doesn't change </li></ul><ul><li>the way the things are been done and only loses productivity </li></ul><ul><li>  </li></ul><ul><li>  </li></ul>
  45. 45. 27 - ORM, not now <ul><li>Abstraction requires power , OOP came to web 40 years after invented, </li></ul><ul><li>Web templatization was possible only when PHP scaling became easy </li></ul><ul><li>SQL is not only abstraction, it is also parallelization </li></ul><ul><li>Modern databases already have internal caches and great </li></ul><ul><li>query optimizers </li></ul><ul><li>Right now latency on data store and retrieval is crucial , and it is the  </li></ul><ul><li>most difficult piece of the system to scale , we can't afford any more </li></ul><ul><li>overheads in real time data manipulation, it is time to cut . </li></ul><ul><li>NoSql acceptance was quick cause databases are right now a problem </li></ul><ul><li>Most of time Web systems are built by few real time data queries and </li></ul><ul><li>few queries are easy to pack into functions and classes that can use </li></ul><ul><li>specialized cache and buffer systems </li></ul>
  46. 46.     Matt Yonkovit - at Percona Live NYC 2011     http://www.percona.com/files/presentations/percona-live/nyc-2011/PerconaLiveNYC2011-How-MySQL-and-NoSQL-Coexist.pdf
  47. 47. 28 - And where is Science ? <ul><li>  </li></ul><ul><li>Scientific Computing last words are: </li></ul><ul><li>  GPU: Graphic CPU, that was born for parallel and  </li></ul><ul><li>            distributed computation </li></ul><ul><li>  FPGA: Bringing software closer to the hardware </li></ul><ul><li>    GRID: International shared GRID network </li></ul><ul><li>Those 3 above are possible to have at home , experimentation is much </li></ul><ul><li>easier now </li></ul>
  48. 48. 29 - Future ? <ul><li>Stop thinking sequential and serial </li></ul><ul><li>&quot;Compute Local, Act Global. </li></ul><ul><li>  Otherwise the Overhead will kill you&quot; </li></ul><ul><li>- Carlos Bueno, a friend of mine </li></ul><ul><li>Merge Hard Disc with RAM and build </li></ul><ul><li>systems that do not require BOOT </li></ul><ul><li>2012 - End of the World ? </li></ul><ul><li>         If not: Stop doing brute force using quantum computation </li></ul>
  49. 49. <ul><li>  </li></ul><ul><li>  </li></ul><ul><li>&quot;A new vogue for the now generation  </li></ul><ul><li>A new profit in the same old game </li></ul><ul><li>We got new thoughts, new ideas it's all so groovy It's just a shame that we all seen the same old movies &quot; </li></ul><ul><li>The Saints - Private Affairs </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  </li></ul><ul><li>  References:  Tanenbaum's &quot; novels &quot;,  EWD manuscripts,  Wikipedia, </li></ul><ul><li>Google's image search,  My and my friends' experiences. </li></ul>

×