Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The future of development: Are our jobs getting harder or easier?

The future of development: Are our jobs getting harder or easier?

In the early days of computing, software developers had to encode their programs on punch cards, and carry the bits around by hand. By the 1970s they had the joy of keyboards and displays. Sadly, those oppressed developers had to wear flare trousers, work in C, and manage their own memory. By 2000 the memory thing was sorted out, but the trousers were arguably worse, and developers had to maintain their own hardware. Now, our hardware is someone else’s problem, everything is open source, AI can write our code, and we have a choice whether to work in Java, Kotlin, Javascript, Ruby, Go, Python, Rust, or Typescript. On the other hand, now we have yaml. And many of us find we have to work in ALL of Java, Kotlin, Javascript, Ruby, Go, Python, Rust, or Typescript, all while managing a cloud, becoming security experts, learning CSS, and debugging the code our AI “helper” wrote. And we’re supposed to be full-stack, and shifting left, and building up open source in our free time. Are we living the dream or sinking under cognitive overload? And is open source helping or hurting?

Holly Cummins

March 15, 2024
Tweet

More Decks by Holly Cummins

Other Decks in Programming

Transcript

  1. @holly_cummins #RedHat Caused by: java.io.IOException: Invalid Magic at org.jboss.jandex.Indexer.verifyMagic(Indexer.java:2090) at

    org.jboss.jandex.Indexer.indexWithSummary(Indexer.java:2479) at org.jboss.jandex.Indexer.index(Indexer.java:2452 true story
  2. @holly_cummins #RedHat Caused by: java.io.IOException: Invalid Magic at org.jboss.jandex.Indexer.verifyMagic(Indexer.java:2090) at

    org.jboss.jandex.Indexer.indexWithSummary(Indexer.java:2479) at org.jboss.jandex.Indexer.index(Indexer.java:2452 true story Invalid Magic?!
  3. @holly_cummins #RedHat TCF 1/PIPA1 +1 NOOP # LESS THAN ZERO

    IMPOSSIBLE. RELINT # Page 299 IRIGCOMP TS GCOMPSW # INDICATE COMMANDS 2 PULSES OR LESS. TS BUF # INDEX COUNTER - IRIGX, IRIGY, IRIGZ. IRIGX EXTEND DCS DELVX # (PIPA PULSES) X 2(+14) DXCH MPAC CA ADIAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) * TC GCOMPSUB # -(ADIAX)(PIPAX) (GYRO PULSES) X 2(+14) EXTEND # DCS DELVY # (PIPA PULSES) X 2(+14) DXCH MPAC # CS ADSRAX # (GYRO PULSES)/(PIPA PULSE) X 2(-3) * TC GCOMPSUB # +(ADSRAX)(PIPAY) (GYRO PULSES) X 2(+14) # EXTEND # *** # DCS DELVY # *** (PIPA PULSES) X 2(+14) # DXCH MPAC # *** # CA ADOAX # *** (GYRO PULSES)/(PIPA PULSE) X 2(-3) * # TC GCOMPSUB # *** -(ADOAX)(PIPAZ) (GYRO PULSES) X 2(+14) CS NBDX # (GYRO PULSES)/(CS) X 2(-5) TC DRIFTSUB # -(NBDX)(DELTAT) (GYRO PULSES) X 2(+14) IRIGY EXTEND DCS DELVY # (PIPA PULSES) X 2(+14) DXCH MPAC CA ADIAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) * TC GCOMPSUB # -(ADIAY)(PIPAY) (GYRO PULSES) X 2(+14) EXTEND DCS DELVZ # (PIPA PULSES) X 2(+14) DXCH MPAC CS ADSRAY # (GYRO PULSES)/(PIPA PULSE) X 2(-3) * TC GCOMPSUB # +(ADSRAY)(PIPAZ) (GYRO PULSES) X 2(+14) # EXTEND # *** # DCS DELVX # *** (PIPA PULSES) X 2(+14) # DXCH MPAC # *** https://github.com/chrislgarry/Apollo-11/blob/master/Comanche055/IMU_COMPENSATION_PACKAGE.agc 1969
  4. @holly_cummins #RedHat package com.example; import org.jboss.logging.Logger; public class MyService {

    private static final Logger log = Logger.getLogger(MyService.class); public void doSomething() { log.info("It works!"); } } example: quarkus logging
  5. @holly_cummins #RedHat package com.example; import org.jboss.logging.Logger; public class MyService {

    private static final Logger log = Logger.getLogger(MyService.class); public void doSomething() { log.info("It works!"); } } example: quarkus logging import io.quarkus.logging.Log; Log
  6. @holly_cummins #RedHat if one is not able to write a

    simple code and depends on generated code, then he is not a developer
  7. @holly_cummins #RedHat “Avoid using any language that uses ‘garbage collection’

    memory management. It teaches bad habits and makes for lazy, sloppy engineers.” –anonymous, 2005 “ http://ex-mentis.blogspot.com/2006/05/are-paul-graham-and-joel-spolsky-right.html
  8. @holly_cummins #RedHat garbage collection users were more likely to complete

    the task in the time available, and those who did so required only about a third as much time (4 hours vs. 12 hours)
  9. @holly_cummins #RedHat gah! auto-formatters are a thing! [space] [space] [space]

    [space] [space] [space] [space] your time is valuable, and typing space- space-space is not a good use of it [space] [space] [space] [space
  10. @holly_cummins #RedHat gah! auto-formatters are a thing! [space] [space] [space]

    [space] [space] [space] [space] your time is valuable, and typing space- space-space is not a good use of it [space] [space] [space] [space ARGH! GAH! *$£!&**!
  11. @holly_cummins #RedHat “What is the world record for crossing the

    English channel entirely on foot?” https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/
  12. @holly_cummins #RedHat “What is the world record for crossing the

    English channel entirely on foot?” “The world record for crossing the English Channel entirely on foot is held by Christof Wandratsch of Germany, who completed the crossing in 14 hours and 51 minutes on August 14, 2020.” https://www.sify.com/ai-analytics/the-hilarious-and-horrifying-hallucinations-of-ai/
  13. @holly_cummins #RedHat quarkus + chat gpt this is wrong in

    every way (there is no quinoa cli, and having one would be a terrible design)
  14. @holly_cummins #RedHat quarkus + chat gpt this is wrong in

    every way (there is no quinoa cli, and having one would be a terrible design)
  15. @holly_cummins #RedHat quarkus + chat gpt this is wrong in

    every way (there is no quinoa cli, and having one would be a terrible design) this is not necessary (it misses a major quarkus usability feature)
  16. @holly_cummins #RedHat programming in diagrams instead of words turns out

    to be a lot of work remember model-driven development?
  17. @holly_cummins #RedHat low code generative AI looks great in demos

    hard to maintain does badly if problem is a new one
  18. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant cognitive load ai coding assistant machine codes assembler high-level language libraries framework
  19. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic
  20. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP
  21. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL
  22. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly
  23. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go
  24. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch
  25. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal
  26. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB
  27. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift
  28. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran
  29. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran R
  30. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran R Kotlin
  31. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran R Kotlin Ruby
  32. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran R Kotlin Ruby Rust
  33. #RedHat @holly_cummins choosing a programming language 1963 Fortan ALGOL COBOL

    LISP 2023 Python C C++ Java C# JavaScript Visual Basic PHP SQL Assembly Go Scratch Pascal MATLAB Swift Fortran R Kotlin Ruby Rust …
  34. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability quality shift left
  35. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations quality shift left
  36. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations usab quality shift left
  37. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations usab quality ud bills shift left
  38. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations usab quality ud bills shift down
  39. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations usability quality cloud bills shift down
  40. transistor networks framework application high-level language assembler machine codes libraries

    ai coding assistant security observability operations usability quality cloud bills shift down value
  41. human alarm clock 1800s - 1940s finite demand only employees

    need waking up no one needs waking up more than once
  42. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software
  43. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show
  44. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software
  45. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software
  46. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software
  47. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software
  48. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software
  49. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software software to try and avoid skynet
  50. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software software to try and avoid skynet software to tell people about software
  51. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software software to try and avoid skynet software to tell people about software software to work out the meaning of life
  52. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software software to try and avoid skynet software to tell people about software software to work out the meaning of life software to gamify software
  53. #RedHat @holly_cummins software to do stuff software to do more

    stuff software to bypass advertisements in the software software to bypass the bypass software so ads still show software to monitor the software software to debug the software software to manage the software software to write the software software to manage the software that writes the software software to try and avoid skynet software to tell people about software software to work out the meaning of life software to gamify software …
  54. #RedHat @holly_cummins copilot users accepted 30% of its suggestions copilot

    produced 40% of the codebase uh oh, what does that say about the information density?
  55. #RedHat @holly_cummins if code is so boring a machine can

    predict it, maybe it shouldn’t be there?
  56. #RedHat @holly_cummins design to make things easy minimise opportunity for

    error minimise boilerplate minimuse duplication of information
  57. #RedHat @holly_cummins design to make things easy minimise opportunity for

    error minimise boilerplate minimuse duplication of information maximise expressiveness
  58. #RedHat @holly_cummins design to make things easy minimise opportunity for

    error minimise boilerplate minimuse duplication of information maximise expressiveness talk to people (doh!)
  59. #RedHat @holly_cummins if ai can save dev time using your

    thing, maybe you designed your api wrong?
  60. #RedHat @holly_cummins we see you will be using a database

    <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-postgresql</artifactId> </dependency> pom.xml
  61. #RedHat @holly_cummins we see you will be using a database

    we see you do not have one <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-postgresql</artifactId> </dependency> pom.xml # This config deliberately left empty application.properties
  62. #RedHat @holly_cummins we see you will be using a database

    we see you do not have one <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-jdbc-postgresql</artifactId> </dependency> pom.xml # This config deliberately left empty application.properties we’ll just sort one out for you
  63. @holly_cummins #RedHat tl;dpa (too long; didn’t pay attention) abstraction is

    good. shift down, to make shifting left easier coding assistants are great at … typing challenge assumptions + eliminate boilerplate it is awesome being a developer