Email or username:

Password:

Forgot your password?
Top-level
Robert Rothenburg

@Threadbane @szescstopni @blacklight

Nonsense. I write software, and every place I've worked at in my career, people wrote the software. We never used code generators, even in the place that preferred to throw lots of cheap graduates at their codebases.

48 comments
szescstopni

@rrwo @Threadbane @blacklight I'm pretty sure some shitty software companies use drag and drop generators, but this software is not (usually – there might be some xceptions :) found in space rockets.

A Smol Bear

@szescstopni @rrwo @Threadbane @blacklight
probably the closest I know of is Drakon, which is for visual, but high integrity, formal flow charting. Apparently invented for Buran and still used for the Russian segment of the ISS.

Fabio Manganiello

@szescstopni @rrwo @Threadbane I've been writing code at professional level for most of my life. I can confirm that I've never used generators :)

My point was about the efficiency of code and how deeply it's tested against all possible use cases - such as "somebody at some point will tilt the antenna by a few degrees and we need a fallback mechanism to find earth again".

I don't feel like there's so much depth, throughout testing of all the possible things that can go wrong, and long-term thinking in the code we write today. The code we ship is often the result of trade-offs - like "we need to release it by this date, and it's ok to cut some corners, decrease test coverage, or have errors - as long as they're below this SLO".

And I'm talking of FAANG-level code, not of the small local startup.

At ESA and NASA maybe they still do things differently (I hope), but most of the commercial software is definitely far from the level of "you can run it for the next 50 years and more, and it'll just work".

Also, this whole masterpiece of engineering could fit into 69 KB of RAM. I can't think of a single non-trivial piece of code today that can fit into that size. It's like, as we added more resources, we just started using all of them to do the same things, rather than doing more things with more resources.

@szescstopni @rrwo @Threadbane I've been writing code at professional level for most of my life. I can confirm that I've never used generators :)

My point was about the efficiency of code and how deeply it's tested against all possible use cases - such as "somebody at some point will tilt the antenna by a few degrees and we need a fallback mechanism to find earth again".

DiscreetSecurity

@blacklight @szescstopni @rrwo @Threadbane Don't worry, there's still microcontrollers, if you want to play with tiny RAM sizes! (though *some* are Gb+ of Flash, now)

Choong Ng

@blacklight @szescstopni @rrwo @Threadbane FAANG is mostly advertising and retail, it's more fair to compare the goals of software engineering at those companies to Don Draper style martini-fueled advertising campaigns and people managing inventory in the stockrooms at Macy's. I suspect the software flying modern satellites is built to an even higher standard than what's we had in the 70s.

ggdupont

@blacklight @szescstopni @rrwo @Threadbane building software has always and is still about choosing an engineering point between fast delivery and "perfectly safe code". In satellite, there is a very specific engineering point since errors are so costly. Same as for rockets or aircraft avionics...

In most other industries, the costs balance is very different. Simply because it's cheaper to pay for a car crash vs waiting for perfect guidance system in consumer cars.

Riskable βŒ¨οΈπŸ‘ŒπŸΌ

@blacklight @szescstopni @rrwo @Threadbane

> Also, this whole masterpiece of engineering could fit into 69 KB of RAM. I can't think of a single non-trivial piece of code today that can fit into that size.

I'm certain that you have tons of things in your home and your vehicle doing all sorts of mission-critical, sophisticated functions with less RAM. It's the difference between *generalist software* that runs on an operating system and embedded software that runs on a microcontroller.

David J. Atkinson #🟦

@rrwo @szescstopni @Threadbane @blacklight At JPL in the 1990’s we developed a provably-correct language and compiler for on-board fault control software. [It’s been so long I forget the lead guy’s name πŸ˜”]

The invention felt like matches that would light in a rainstorm. Confidence. Reliability is/was the MAJOR contribution of JPL software to aerospace. Ok, that and autonomy, but that’s another thread.

Threadbane

@rrwo @szescstopni @blacklight
Sorry. I retired in 2005, 37 years as a code ape, and it just seemed like coding had become a lost art already. I figured two decades hence nobody needed to code anything anymore. (My last work was in C++, Sybase SQL, PerlTK, and javascript.) The new employees out of Clarkson and Renssalaer could not code a lick.
I'm getting killed this morning with stupid shit popping out of my keyboard! First the pantheon gaffe, now THIS!

Robert Rothenburg

@Threadbane @szescstopni @blacklight

The "younger" generations of coders are used to having a standard library for everything, and rarely needing to worry about memory usage or performance.

But it's so much easier to write code when you don't have to worry about these things. This can be a good thing.

A downside is the worship of new technologies just because they are new. Sometimes 50+ year-old is still in use for good reasons.

szescstopni

@rrwo @Threadbane @blacklight Right. Sometimes I think I should learn FORTRAN.

Robert Rothenburg

@szescstopni @Threadbane @blacklight

I see a lot of folk get hot and bothered by clusters of NoSQL servers that use massive amounts of memory, CPU and bandwidth when a simple SQL database will do the job with less maintenance.

But it doesn't look as sexy on a CV.

Cybarbie

@rrwo @szescstopni @Threadbane @blacklight There are many cases where NoSQL is only sensible choice. NoSQL has been around longer than SQL, nearly as long as Voyagers which don't use SQL either. There is a narrow range of cases where SQL is appropriate usually some business context at a certain limited scale. It has nothing to do with your resume. Not only this just because business apps and web apps are shitty does not mean kids in critical systems engineering are not killing it, they are.

Fabio Manganiello

@nf3xn @rrwo @szescstopni @Threadbane SQL has been around since Codd's original paper in 1974, so it's a couple of years older than Voyager :)

As an SQL and relational algebra geek there's nothing worse I could hear than "SQL has only a limited range of applications". Both relational and non-relational databases can be amazing tools for storing data - when used properly for the right use case.

Cybarbie

@blacklight @rrwo @szescstopni @Threadbane NoSQL is even older than that. As for SQL sadly I have used most of them. SQL has its place, like anything. The key difference between the way say some webshit like facebook is built and Voyager comes down to the way the project is managed. There is no move fast and break things with a nuclear power plant. It's the old school SSADM with endless reams of docs, specs, ERDs and dusty old process Very high detail, labor intense, expensive software cycle.

John Socks replied to Cybarbie

@nf3xn @blacklight @rrwo @szescstopni @Threadbane I agree. In the old days I worked coding assembly language for medical instruments that would be in the field for decades. Certainly compared to today a lot of care was put into 64k. But as you say that's more about problem domain than technology

(I have also spun up MySQL instances for really trivial things, like organizing files at home.)

John Socks replied to John

@nf3xn @blacklight @rrwo @szescstopni @Threadbane Ha! I remember one of the last times I used a SQL database for a trivial purpose .. garage temperature recording.

I guess it cracked me up at that point how ridiculous it was to have a full unix(ish) stack and SQL to run a thermometer.

As an added bonus this pi zero and the one in the kitchen communicated, doing data replication for fault tolerance.

It's still funny to me.

stfn :raspberrypi: :python: replied to John

@John @nf3xn @blacklight @rrwo @szescstopni @Threadbane ah yes, for my first temperature measurement I also used a Zero W with a Postgres db and a pythons script writing to it every minute. Now I use an RPi Pico sending data by MQTT to a server which ingests those messages to InfluxDb, which is read by Grafana.

John Socks replied to stfn :raspberrypi: :python:

@stfn @nf3xn @blacklight @rrwo @szescstopni @Threadbane That sounds cool and much more modern. My boards answered my questions, which were basically about how the temperature cycle looked in my house with no heat or cooling (not present anyway) running.

Before running the test I had not really internalized that the coldest part of the night is not midnight ;-)

Fabio Manganiello replied to John

@John @stfn @nf3xn @rrwo @szescstopni @Threadbane we often forget that there's actually a very lightweight way of running SQL that doesn't require any server, it can also fit into memory, and even into a WASM frontend - SQLite :)

It may not come with all the bells and whistles of a full-blown RDBMS (no stored procedures and triggers AFAIK), but it definitely solves the use cases of (I'd say) 90-95% of the applications out there.

I've actually got the db of my Matrix server (~20GB) fully running on SQLite, and I've been impressed by its versatility and performance.

@John @stfn @nf3xn @rrwo @szescstopni @Threadbane we often forget that there's actually a very lightweight way of running SQL that doesn't require any server, it can also fit into memory, and even into a WASM frontend - SQLite :)

It may not come with all the bells and whistles of a full-blown RDBMS (no stored procedures and triggers AFAIK), but it definitely solves the use cases of (I'd say) 90-95% of the applications out there.

SΓ©bastian Le Merdy replied to John

@John this is a very interesting project: do you have some links or details about hardware and software that you have used to achieve it?

John Socks replied to SΓ©bastian Le Merdy

@seblm I think my method was a little idiosyncratic. If I remember correctly I used a DHT11 temperature sensor, and wrote c code to take a reading and insert it in the database. I just set that c code up as a cron job. I used shell scripts and cron jobs to do my data replication, database dumps and rsyncs if I remember correctly.

There are lots of ways to skin the cat, and if you search for raspberry pi DHT11 (or DHT22) there will be lots of examples.

Threadbane replied to John

@John @nf3xn @blacklight @rrwo @szescstopni
In 1984 I was getting radiation for lymphoma and the machine that was delivering the dose, some sort of Roentgen device I think, was computer controlled. During one of the treatments (everybody left the room of course), I reached over and turned the screen toward me and as the commands scrolled by the hair on the nape of my neck stood up. It was a BASIC *interpreter* running off an 8" floppy! AIEEEE!! 8^)

John Socks replied to Threadbane

@Threadbane @nf3xn @blacklight @rrwo @szescstopni

Ouch, yeah.

I came in at the start of the floppy era. Before that we actually shipped clinical instruments with ROM boards only, and updates were shipping a new board. Part of our department was still doing that.

There was this big consciousness that, even with floppies, you never knew they would reach their destination, and out of date software might live for many many years.

Eric Lawton

@blacklight

I wasn't taught SQL in my comp sci database courses in 1981, just hierarchical databases, because "relational is cool theory but not practical for commercial apps".

Ironically, I never used a hierarchical database but 5 years later, got a contract writing parsers for IMS, COBOL and PL/1 to generate SQL DDL and migrate data to DB2.

@nf3xn @rrwo @szescstopni @Threadbane

Fabio Manganiello replied to Eric

@EricLawton @nf3xn @rrwo @szescstopni @Threadbane this is a very interesting insight.

I studied computer engineering two decades later, we were told that SQL had been around since 1974, and most of us assumed that Codd came down the Mount Sinai with the foundations of relational algebra set in stone, and everybody embraced it immediately.

Working on some legacy systems at the beginning of my career, I actually also noticed that DB2 and friends weren't fully embraced until at least the second half of the 1980s.

Same goes for C++ - most of the post-2000 students assumed that after Stroustrup's initial draft C++ and its object oriented paradigm came as a tidal wave on software development, but later on I noticed that most of the software up to at least mid-1990s was still written in earlier languages.

@EricLawton @nf3xn @rrwo @szescstopni @Threadbane this is a very interesting insight.

I studied computer engineering two decades later, we were told that SQL had been around since 1974, and most of us assumed that Codd came down the Mount Sinai with the foundations of relational algebra set in stone, and everybody embraced it immediately.

Eric Lawton replied to Fabio

@blacklight

I was part of an OO Centre of Competence in the mid-1990s.

I wasn't writing much code by then, mostly design and team leader.

But I remember a developer telling another that I was an expert in C++, even though I had only read the manual (which I still have).

I think it was because I knew how to write compilers and read the book critically through that lens, so was figuring out the point of each feature as I read about it.

@nf3xn @rrwo @szescstopni @Threadbane

SarekOfVulcan replied to Eric

@EricLawton @blacklight @nf3xn @rrwo @szescstopni @Threadbane much the same in my database class in 1989, I think. SEQUEL got a passing mention in the textbook, but that was about it. :) I know relational theory was discussed, but I long ago chucked the proper terms in favor of SELECT, FROM, WHERE, etc. :)

bjb :devuannew: :emacs:

@nf3xn @rrwo @szescstopni @Threadbane @blacklight
There are a very few cases where nosql is a better choice. Also, there are flavours of nosql, each optimizing for different things.
There are a few cases where a full-blown sql server is a better choice. Some sql servers are better than others, they are not all the same.
There are tons of cases where either will do fine.

Threadbane

@nf3xn @rrwo @szescstopni @blacklight

But do they have to use an IBM 029 card punch, carry trays of punch cards to the big mainframe on base to compile (ready the next day)!? Do they have to toggle switches on the PDP-11 front panel to load the jmp instruction and then the address of the ISR that loads in the bootstrap loader from paper tape that then reads the hard disk for the big boot? Do they have to code without an onscreen editor!? HUH!? HUH!? HUH!?

Threadbane

@szescstopni @rrwo @blacklight
One of the first languages I learned was FORTRAN, back in 1969. Didn't really use it until the 70s though.
I've coded in:
Jovial
Simscript
c and C++
Visual Basic
PerlTK
Ruby
Singer-Kearfott assembler
8080 assembler
X86 assembler
PDP-11 assembler
MACRO-11
Many SQL variants
cshell, Korne shell, Bourne shell, Bash, etc
Pascal
Algol
Ada
Byron
...I'd have to go find some old resumes. 8^)

Jorge Stolfi

@Threadbane @szescstopni @rrwo @blacklight

Learned Fortran in 1969 too.

Funny that my list of languages is about as long as yours, but has very few in common -- C (not C++), csh/sh/bash, Pascal, Algol (Burroughs dialect).

Ramin Honary

@szescstopni @rrwo @Threadbane @blacklight

> > "Right. Sometimes I think I should learn FORTRAN."

You should learn Common Lisp or Scheme, for sure. Its a high-level language, its a low level language, it is a little of everything in between.

szescstopni

@ramin_hal9001 @rrwo @Threadbane @blacklight I might be too old for that. The main reason I still program is to manage running a small rural ISP operation, and Python is all I need for that.

Fabio Manganiello

@ramin_hal9001 @szescstopni @rrwo @Threadbane I've tried to learn LISP dialects for the past 20 years or so, and I've always failed.

I mean, I can definitely read some Common LISP, Scheme or Clojure code by now, and I've even debugged somebody else's code occasionally. But when it comes to writing, all those nested parenthesis and operators in an unintuitive order just keep shouting "unnecessary cognitive burden" to me :)

Ramin Honary

@blacklight @szescstopni @rrwo @Threadbane the parentheses are an essential part of the language, being that one of the distinguishing features of any Lisp is the ability to write code that transforms parts of your program into other forms before it runs (sometimes while it runs). You can do this with any programming language of course, but Lisp's minimal syntax makes it easier to do for both the programmer and the compiler β€” meaning a lower cognitive burden for the programmer, and also a smaller, more efficient memory footprint for compiled binaries.

Once you get used to it, nothing could be more intuitive than the elegant, minimalist syntax of Lisp.

@blacklight @szescstopni @rrwo @Threadbane the parentheses are an essential part of the language, being that one of the distinguishing features of any Lisp is the ability to write code that transforms parts of your program into other forms before it runs (sometimes while it runs). You can do this with any programming language of course, but Lisp's minimal syntax makes it easier to do for both the programmer and the compiler β€” meaning a lower cognitive burden for the programmer, and also a smaller,...

Threadbane

@ramin_hal9001 @blacklight @szescstopni @rrwo
Never learned or used Lisp, although I have seen a Lisp listing from a project a coworker was on. Cool.

SarekOfVulcan

@ramin_hal9001 @szescstopni @rrwo @Threadbane @blacklight GNU Lilypond, a music typesetting system, allows embedded Scheme code for the stuff that Just Doesn't Fit in the standard syntax. :)

szescstopni

@SarekOfVulcan I might have to look into this – I'll probably have to learn Lilypond to typeset a friend's ukulele book :)

DELETED

@Threadbane @Sassinake @rrwo @szescstopni @blacklight kudos to be on Mastodon. Big respect and good health to you!

szescstopni

@Sassinake @rrwo @Threadbane @blacklight Kids know how to count. Not all of them, but enough. And those who do are brilliant.

Robert Rothenburg

@szescstopni @Sassinake @Threadbane @blacklight

There are specialised areas for DSLs and visual tools are useful for experts who are non-programmers to specify an algorithm without worrying about memory leaks or infinite loops. This is also a good thing.

But it's for specialised applications.

Blippy the Wonder Slug πŸ‡©πŸ‡ͺπŸ‡¨πŸ‡¦πŸ‡ΊπŸ‡Έ

@rrwo @Threadbane @szescstopni @blacklight
Tight code will always have a place.

ORG.ASM
;
; x86 Assembly Language Love Poem
; For A Geek Goddess
;
mov al,n
out dx,al
mov ah,al
and al,0x0f
out dx,al
shr ah,1
shr ah,1
shr ah,1
pop

πŸ¦†πŸ¦†πŸ¦†πŸ’»

Go Up