Click here to Skip to main content
15,902,739 members

The Insider News

   

The Insider News is for breaking IT and Software development news. Post your news, your alerts and your inside scoops. This is an IT news-only forum - all off-topic, non-news posts will be removed. If you wish to ask a programming question please post it here.

Get The Daily Insider direct to your mailbox every day. Subscribe now!

 
GeneralRe: WikiLeaker Assange's internet access cut by a 'state actor' Pin
User 1013254618-Oct-16 2:14
User 1013254618-Oct-16 2:14 
NewsHow your first programming language warps your brain Pin
Kent Sharkey17-Oct-16 8:15
staffKent Sharkey17-Oct-16 8:15 
GeneralRe: How your first programming language warps your brain Pin
Vark11117-Oct-16 9:24
Vark11117-Oct-16 9:24 
GeneralRe: How your first programming language warps your brain Pin
Daniel Pfeffer17-Oct-16 9:42
professionalDaniel Pfeffer17-Oct-16 9:42 
GeneralRe: How your first programming language warps your brain Pin
Eddy Vluggen17-Oct-16 9:51
professionalEddy Vluggen17-Oct-16 9:51 
GeneralRe: How your first programming language warps your brain Pin
Kevin Marois17-Oct-16 11:06
professionalKevin Marois17-Oct-16 11:06 
GeneralRe: How your first programming language warps your brain Pin
Maximilien17-Oct-16 9:42
Maximilien17-Oct-16 9:42 
GeneralRe: How your first programming language warps your brain PinPopular
Marc Clifton17-Oct-16 12:12
mvaMarc Clifton17-Oct-16 12:12 
Technically, my first language was the numeric keyboard encoding on the HP25C, capable of 49 instruction memory. I learned a lot about code optimization. Smile | :)

I then moved up to the HP67, which I think offered 200 instruction memory, then the HP41C.

Somewhere in the middle I was doing BASIC programming on a teletype on a PDP-11, where I finally wrapped my head around the idea that when you tell the computer a = 5 and later say print a+1, there's some memory somewhere that contains 5, a reference somewhere that a refers to that memory cell. That actually took a while.

When I progressed to the Commodore PET, the world opened up to hardware, registers, and 6502 assembly language. Not to mention early concepts of a BIOS.

Doing a lot of assembly programming kept teaching me skills like code optimization, DRY principles way before the acronym was invented, good documentation and variable / entry point naming skills, and most certainly, good debugging skills.

I also got introduced to parallel processing in a Pascal-like language called SAIL, which was sort of a mind-bender because line numbers and goto / jmp (in assembly) disappeared. I really had no concept of a stack yet at that point, and when, in a summer class I took at Stanford by a guy that would pick his zit scabs and eat them (I kid you not, it was Dead | X| and his classes were being video-taped!) I simply could not wrap my head around recursion, stack-based variables, and ended up spending my time in front of computer playing Star Trek instead of writing the quicksort algorithm. Heck, I didn't even know what question I should be asking, my programming brain was so oriented around linear-sequence programming. I'm not sure I finally grokked the concept of a stack vs. a heap until years later.

My introduction to C was one of "run away". All those ridiculous symbols and weird behaviors, like i++ vs. ++i. Really? Who invented this horribly confusing language to write and read? Pascal was my buddy by then, courtesy of Borland and $99 Turbo Pascal.

So I basically skipped C, but really like C++. It made sense -- classes, encapsulation, polymorphism. But I got "base class" wrong. It's a BASE class right? So like the base of a pyramid, it's at the bottom of the derivation hierarchy, right??? I wrote a whole app that way. Templates were amazing, they also made so much sense.

In many ways, C++ very much refined my ideas of separating code into isolated blocks of code. Still, I found that there was too much inter-dependency between classes. Re-use was a myth, not a reality. Tight coupling of code made the code monolithic. It was only by careful planning and using higher level architectures, like a publisher-subscriber pattern, that I was able begin to disentangle the monolithic nature of applications. Which also lead me down the path of loading DLL's dynamically at runtime and separating out declarative aspects of the code from imperative ones. XML didn't really exist, so I wrote my own XAML-like syntax for rendering UI's with MFC.

Other things became apparent too - the tight coupling of the data access layer (and embedded SQL statements) that were rampant at that time. Again, a custom scripting language to separate out the SQL statements from the app had a direct impact on how quickly code could be changed to deal with changing / new requirements. Everyone's jaw would drop when I could run a C++ app, change some declarative markup and SQL, and have new functionality, without compiling a line of code (heck, without even exiting the application.)

About that time, the Design Patterns book hit the streets and everyone was yammering about DP's, and I thought, wow, this is so old hat!

And also about that time, I read Vital Dust[^], which changed how I thought about programming forever. It's quite fascinating that a book about the roots of life changed my thinking about programming - something no programming book had (and has) ever done. Around that time, I discovered Code Project (was using a 64K ISDN modem at the time) and so, on May 26 2002, I took my ideas from Vital Dust and the experiences I had gained and wrote my first article, Organic Programming Environment[^]. (Years later, the concept was revisited again with HOPE[^] originally posted exactly (-1 day) 12 years later!)

And then C# appeared. The rest was history. C# has so greatly influenced my programming and thinking style that I cringe whenever I have to use another language (which usually consists nowadays of Python and Javascript.) And it continues to do so, with functional aspects, LINQ, etc.

And certainly, my history of compiled, strong typed languages has bent my thinking, such that script, duck-typed languages are, to be frank, a joke (and a bad one at that) in my opinion.

So I continue on the path of further refining the ideas of decoupling code and creating modular data-driven rather than imperative workflow-driven applications, and where concepts like dependency injection are, in my opinion, totally the wrong direction to go, (I can't believe people still use DI), and to the ire of the people that look at my code and the supporting framework, who don't get it and never will get it.

So over the last 30 years, my exposure to a certain path of languages and a certain path of problems has led me to a particularly lonely corner of the programming universe! But thank God for Code Project, where I you can at least peek under the bed to see what monsters lurk in the bedroom of my programming mind. Smile | :)

Marc
Imperative to Functional Programming Succinctly

Contributors Wanted for Higher Order Programming Project!

Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny

GeneralRe: How your first programming language warps your brain Pin
Nelek18-Oct-16 2:11
protectorNelek18-Oct-16 2:11 
GeneralRe: How your first programming language warps your brain Pin
BillWoodruff18-Oct-16 8:32
professionalBillWoodruff18-Oct-16 8:32 
GeneralRe: How your first programming language warps your brain Pin
Matthew Dennis17-Oct-16 15:28
sysadminMatthew Dennis17-Oct-16 15:28 
NewsThe Soviet InterNyet Pin
Kent Sharkey17-Oct-16 8:12
staffKent Sharkey17-Oct-16 8:12 
NewsQuantum computers: 10-fold boost in stability achieved Pin
Kent Sharkey17-Oct-16 8:07
staffKent Sharkey17-Oct-16 8:07 
GeneralRe: Quantum computers: 10-fold boost in stability achieved Pin
gardnerp17-Oct-16 8:42
gardnerp17-Oct-16 8:42 
NewsThe Linux Foundation takes on the JavaScript community with the JS Foundation Pin
Kent Sharkey17-Oct-16 8:02
staffKent Sharkey17-Oct-16 8:02 
GeneralRe: The Linux Foundation takes on the JavaScript community with the JS Foundation Pin
Vark11117-Oct-16 9:22
Vark11117-Oct-16 9:22 
NewsNYPD Implements Windows (8.1) Phones : More User-Friendly Than iOS or Android Pin
raddevus17-Oct-16 7:56
mvaraddevus17-Oct-16 7:56 
GeneralRe: NYPD Implements Windows (8.1) Phones : More User-Friendly Than iOS or Android Pin
den2k8817-Oct-16 22:10
professionalden2k8817-Oct-16 22:10 
GeneralRe: NYPD Implements Windows (8.1) Phones : More User-Friendly Than iOS or Android Pin
raddevus18-Oct-16 2:25
mvaraddevus18-Oct-16 2:25 
NewsSurvey says many companies want to phase out passwords Pin
Kent Sharkey16-Oct-16 6:53
staffKent Sharkey16-Oct-16 6:53 
GeneralRe: Survey says many companies want to phase out passwords Pin
Eddy Vluggen17-Oct-16 6:59
professionalEddy Vluggen17-Oct-16 6:59 
GeneralRe: Survey says many companies want to phase out passwords Pin
Basildane17-Oct-16 7:04
Basildane17-Oct-16 7:04 
GeneralRe: Survey says many companies want to phase out passwords Pin
Eddy Vluggen17-Oct-16 9:49
professionalEddy Vluggen17-Oct-16 9:49 
GeneralRe: Survey says many companies want to phase out passwords Pin
Basildane17-Oct-16 15:19
Basildane17-Oct-16 15:19 
GeneralRe: Survey says many companies want to phase out passwords Pin
jeron117-Oct-16 8:11
jeron117-Oct-16 8:11 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.