What was your first programming language? If you had to start over, would you learn the same first language again? What are your favorite programming language(s)? Are there certain projects you've worked on that made more sense to write in a certain language?
- CJ
- CSS / HTML - 2003
- ActionScript - 2005
- PHP - 2005
- ActionScript
- 2000
- 1998
- 2008
- Javascript
- 2015
- 2017
- 2019
- 2023
- Basic
- 1989
- 1983
- 1987
- 1972
- 1990
- Late 80s
- Late 90s
- C++
- 2022
- 2010
- 2023
- 1996
- C
- 2010
- 2014
- 2013
- 2012
- Perl
- 2000s
- PHP
- 1998
- 1997
- 2012
- 2019
- 2004
- 2000
- 2003
- Logo
- Late 90s
- Swift
- 2019
- Python
- 2020
- 2023
- 2017
- 2019
- C#
- 2017
- 2021
- Java
- 2010
- 2014
- 2022
- Visual Basic / VBA / VB.NET
- 2006
- Late 90s
- Object Pascal
- 2001
- Turbo Pascal
- 1992
- Late 90s
- 1999
- Pascal
- Early 90s
- 2013
- Scratch
- Game Maker
- 2000s
- HTML
- 1999
- 2021
- Lua
- 2019
- SQL
- 2009
- 1995
- Matlab
- 2012
- Assembler
- 1996
- Cobol
- 1996
- Systems Programming Languages
- Close to the "metal" (hardware)
- Typically have to do manual memory management
- Pointers
- Typically have to do manual memory management
- Some of the fastest possible resulting code...
- More control of the resulting code
- More work
- Needs to be compiled for a specific CPU target
- Tried and true, been around for a long time and aren't really going anywhere...
- C++, C, Assembly
- Newer Languages
- Rust, Go, Zig, Carbon
- Industries where this is used:
- PC Hardware Manufacturers
- Device Drivers
- Operating Systems
- Medical
- Health critical devices
- Pacemaker
- Imaging
- X Rays / Cat Scans / MRIs
- Health critical devices
- Gaming
- Manufacturing
- Robotics
- Financial Modeling / Stock Trading
- Many more...
- PC Hardware Manufacturers
- Close to the "metal" (hardware)
- Higher Level / Application Focused
- The target is typically not the hardware directly
- Sometimes - some kind of intermediary target
- Bytecode
- Extreme performance / fine grain control is less important than development speed / developer experience / developer ergonomics
- Sometimes - interpreted by a runtime
- Scripting, AOT (Ahead of time), JIT (Just in Time), Runtime Targeted
- Garbage Collection
- Automated memory management
- Typically have multiple target outputs
- The same codebase can run on many different kinds of devices and operating systems without extra effort
- Example:
- Java, Scala, Kotlin, Groovy, Clojure, Jython is compiled into bytecode
- The target for this bytecode is the JVM (Java Virtual Machine)
- The compilation result can run anywhere the JVM is supported... BUT the JVM needs to be installed / running for the Java program to run
- C#, VB.NET, F#, IronPython, Managed C++ is compiled into bytecode
- The target for this bytecode is the .NET runtime
- The compilation result can run anywhere the .NET runtime is supported... BUT the .NET runtime needs to be installed / running for the C# program to run
- Java, Scala, Kotlin, Groovy, Clojure, Jython is compiled into bytecode
-
CJ
- No, actionscript is not relevant anymore...
-
If you learned programming more than 10 years ago... there is probably a better programming language to start
- Except for PHP, you could start there today and still be successful
- CJ's Suggestions for your first programming language:
- JavaScript / Web Development
- Python
- Java / C#
- Maybe C++... depending on context
-
There are no really bad choices for your first programming language
- Concepts overlap and hold true for many different languages
- Variables / Assignment
- Loops
- Conditionals
- Functions / Methods
- Program structure
- Concepts overlap and hold true for many different languages
-
Start with OOP
- Object Oriented Programming
- Group your program into Objects that model the real world - these objects talk to each other to make a working program
- C#, Java, C++, JavaScript, Python
- Object Oriented Programming