Stefan
12/30/2023, 1:04 PMKonrad Hinsen
12/30/2023, 1:12 PMJimmy Miller
Lu Wilson
12/30/2023, 1:37 PMJimmy Miller
Justin Blank
12/30/2023, 4:18 PMJimmy Miller
alltom
12/30/2023, 4:41 PMKonrad Hinsen
12/30/2023, 4:59 PMJustin Blank
12/30/2023, 5:19 PMJustin Blank
12/30/2023, 5:21 PMKartik Agaram
Alex Cruise
12/30/2023, 5:46 PMAlex Cruise
12/30/2023, 5:48 PMAlex Cruise
12/30/2023, 5:49 PMAlex Cruise
12/30/2023, 5:49 PMAlex Cruise
12/30/2023, 5:53 PMJoshua Horowitz
12/30/2023, 6:25 PMAlex Cruise
12/30/2023, 6:39 PMAlex Cruise
12/30/2023, 6:40 PMJimmy Miller
software engineering is about studying the practice of building software as a repeatable process with codified methods designed to facilitate development and maintenance by groups of peopleSo if a single person does something does it cease to be software engineering? Is quickjs not an example of software engineering because it was all done by Fabrice and isn't maintained by a group of people? By the same token, does the maintenance of a spreadsheet by a group of people with codified practices count more as software engineering than the development of quickjs because multiple people were involved? I don't mean this to be pointed, I sincerely don't understand what the distinction is supposed to be. Is it about groups? Is it about rigor? Is it subject matter, difficulty? I don't consider anything I've done in my career to meet the criteria you gave. I don't think any of the processes I've done are repeatable, except the act of programming itself, which are trying to make as a distinction here. @Konrad Hinsen
But it also contains an aspect of size or complexity of a software project, and that makes sense. Writing 50 lines of code to reformat my blog entries is programming, but not software engineering.Yeah, I just don't buy that though. A lot of what falls under the banner of software engineering is no more complex than writing 50 lines of code to reformat blog entries. The way in which I think about doing these activities is the same. The kinds of decisions you have to make to do them is the same. I am spending hours and hours of my time right now at work resolving merge conflicts from a fork that stopped tracking upstream. It is all to support things at a massive industrial scale. But my activity is writing a little clojure script that shells out to help me manage git patches. Is this software engineering? Does it change it if the resolutions here are for a compiler?
Alex Cruise
12/30/2023, 6:58 PMJustin Blank
12/30/2023, 7:00 PMChris Krycho
12/30/2023, 8:03 PMChris Krycho
12/30/2023, 8:05 PMChris Krycho
12/30/2023, 8:07 PMas a title, software engineer isn’t usefully different from programmer.—I would very much like for it to be different. I would like it to be the case that we who want to claim the mantle of “engineers” take responsibility for (and are held accountable for!) the work we do in a particular way. And while yes, that would then become aspirational, it would be because we are expecting more from a subset of the field of software practitioners, and thereby perhaps elevating the field as a whole a bit.
Jimmy Miller
Konrad Hinsen
12/31/2023, 8:44 AMcomputer science is not a science,Are you referring to the old debate about what Herbert Simon nicely called "sciences of the artificial", which some do and others don't consider science? Or is it about CS not being serious/mature/whatever enough to be called science? Personally, I am happy to include the sciences of the artificial under the "science" label, and I am happy with accepting immature fields as well, as long as they are working towards improvement of their own standards. So CS is a science for me. It's just not about computers, but that's only a problem with the English-language label.
and software engineering is trying to be a science but still faking it.In the old science-vs.-engineering debate, I have taken the taoist stance and declared them a yin-yang pair. Science is about learning how the world works, and engineering is about changing the world based on scientific understanding. The problem with SE is that is hasn't much of a "science" partner yet. People are too busy making software and then making it obsolete that they have no time to reflect on their practices. So yes, "faking it" is a good description.
Kartik Agaram
Konrad Hinsen
01/01/2024, 9:10 AMGreg Bylenok
01/01/2024, 9:16 PMJack Rusher
01/02/2024, 10:42 AMKonrad Hinsen
01/03/2024, 10:25 AM“Computer science” is a bad name for a set of findings that form a loose branch of applied mathematics.Like chemistry is a loose branch of applied physics. That's a point of view I have defended for many years, but no longer. There's a reason why academic discplines are called disciplines: they are about shared attitudes and values, not so much about topics. Chemists have different values and attitudes than physicists, and the same holds for CS vs. mathematics, although in both cases there is no clear demarcation, but a smooth transition. We have chemical physics and physical chemistry as sub-disciplines, and within CS, formal methods people are closer to mathematics than HCI researchers. Maybe a good perspective on programming vs. CS vs. SE is to look at the respective communities of practice. CS and SE both have such communities, with various subcommunities. There is also some overlap between the CS and SE communities. Programming doesn't. It's indeed a big tent label, and even if you restrict it to computer programming, it's still very diverse. Maybe "industrial software development" has a community of practice? I'll let those involved with it decide. From the outside, the large number of conferences suggests there is indeed a community.
Konrad Hinsen
01/03/2024, 10:29 AMJack Rusher
01/03/2024, 10:49 AMguitarvydas
01/03/2024, 11:58 AMguitarvydas
01/03/2024, 11:59 AMjust because you do it with a computer does not make it computer science!++
Alex Cruise
01/03/2024, 6:05 PMAlex Cruise
01/03/2024, 6:06 PMAlex Cruise
01/03/2024, 6:06 PMguitarvydas
01/03/2024, 11:08 PMI think a lot of this is symptomatic of a field of endeavour (or practice) that has wildly outgrown its field of study, and so quickly that academia hasn't really had enough time to adaptI agree and disagree. I would say that academic study just about always lags behind practice. For example, we still don't really know what "electricity" is, but, we use it every day. The academic explanation seems to come in 2 stages 1. quantify the relationships 2. explain the relationships Tesla and Edison worked out how to use Electricity in practice. Steinmetz, Wheatstone, Maxwell, et. al. created equations that quantified some of the effects. I don't know of any real explanation for what is going on at a deeper level (i.e. (2)). Robert Distinti has found new effects to quantify. And, he's working on an explanation. Tesla probably figured out more about the explanation than he cared to share, or could put into words.
Normally the pipeline from materials science to engineering takes multiple decadesThat's just historical. We can do better.
Konrad Hinsen
01/04/2024, 8:18 AMStefan
01/06/2024, 9:57 AMKonrad Hinsen
01/07/2024, 10:08 AMguitarvydas
01/09/2024, 2:22 PMStefan
01/09/2024, 3:30 PMWhat pairs with “fumbling around”? What inspires new avenues for “fumbling around”? What is a better phrase/word for “fumbling around”?"Fumbling around” to me sounds like opening up to our human capacity for insight through (serious) play. It has a connotation of unprofessionalism as you would expect in our results-oriented society. If we like it or not, that’s where most (all?) really good ideas come from. The kind you later think are totally obvious, and where it’s hard to see how we ever did it any other way.
Konrad Hinsen
01/09/2024, 3:53 PMKonrad Hinsen
01/09/2024, 4:01 PMWe believe, for no good reason, that all practical programming languages must be based on CPUs and assembler:Do we (i.e. some unspecified majority) really profoundly believe this? Or is it a necessary working hypothesis made by software people who have to make do with off-the-shelf hardware because, well, life is too short?
Alex Cruise
01/09/2024, 4:54 PMStefan
01/09/2024, 6:00 PMChris Krycho
01/09/2024, 7:06 PMlower levels stagnate and become harder and more expensive to change.It’s not at all clear to me why you think the others are problems. 🤔
guitarvydas
01/10/2024, 10:07 AMlower levels stagnate and become harder and more expensive to changeIn my view, this is the problem. It behooves us not to gloss over it and not to accept it as a fact. There are 2 parts to fixing a problem 1. define / state the problem, then, 2. fix it. Method for identifying part 1: Ask "why?" over and over again, recursively. 1st iter: why are the lower levels more expensive to change? [my comments: an alternate way of asking the same question: Why is/was there a Moore's Law for hardware but not for software? My current answer: deep asynchronousity, lack of dependencies. ICs are asynchronous, lines of code are synchronous]
Kartik Agaram
Konrad Hinsen
01/10/2024, 1:08 PMJustin Blank
01/10/2024, 1:52 PMKartik Agaram
Alex Cruise
01/10/2024, 6:54 PMAlex Cruise
01/10/2024, 6:55 PMJustin Blank
01/10/2024, 6:59 PMKartik Agaram
..the software industry collectively misses a subtle point about the difference between developing a software design and what a software design really is. ..programming is not about building software; programming is about designing software.
...
The final goal of any engineering activity is some type of documentation. When a design effort is complete, the design documentation is turned over to the manufacturing team. This is a completely different group with completely different skills from the design team. If the design documents truly represent a complete design, the manufacturing team can proceed to build the product. In fact, they can proceed to build lots of the product, all without any further intervention of the designers. After reviewing the software development life cycle as I understood it, I concluded that the only software documentation that actually seems to satisfy the criteria of an engineering design is the source code listings.
..no other modern industry would tolerate a rework rate of over 100% in its manufacturing process. A construction worker who can not build it right the first time, most of the time, is soon out of a job. In software, even the smallest piece of code is likely to be revised or completely rewritten during testing and debugging. We accept this sort of refinement during a creative process like design, not as part of a manufacturing process. No one expects an engineer to create a perfect design the first time. Even if she does, it must still be put through the refinement process just to prove that it was perfect.
...
The overwhelming problem with software development is that everything is part of the design process. Coding is design, testing and debugging are part of design, and what we typically call software design is still part of design. Software may be cheap to build [using compilers and linkers], but it is incredibly expensive to design.
Chris Krycho
01/14/2024, 9:16 PMThe final goal of any engineering activity is some type of documentation.That is, again, just not how actual manufacturing and other “physical” engineering disciplines work. Architects, civil engineers, chemical engineers, nuclear engineers, mechanical engineers, etc. are often deeply involved in the physical aspects of their work. Obviously the specific kinds of involvement vary across those, but… yeah, this quote is just completely wrong in the way that many descriptions of “real” engineering disciplines are.
Chris Krycho
01/14/2024, 9:17 PMChris Krycho
01/14/2024, 9:20 PMWe accept this sort of refinement during a creative process like design, not as part of a manufacturing process. No one expects an engineer to create a perfect design the first time. Even if she does, it must still be put through the refinement process just to prove that it was perfect.—it is just proffering a false distinction. Lots of physical engineering tasks absolutely treat actual manufacturing as part of the design process, albeit with an expected yield curve shift over time where it smooths out as you get past initial hurdles. But… that’s what we do with software, too!
Chris Krycho
01/14/2024, 9:21 PMKonrad Hinsen
01/15/2024, 7:47 AMStefan
01/15/2024, 8:11 AMAlex Cruise
01/15/2024, 5:24 PMAlex Cruise
01/15/2024, 5:24 PMKonrad Hinsen
01/16/2024, 7:28 AMAlex Cruise
01/16/2024, 5:34 PMJimmy Miller
Alex Cruise
01/16/2024, 5:36 PMAlex Cruise
01/16/2024, 5:39 PMAlex Cruise
01/16/2024, 5:40 PMAlex Cruise
01/16/2024, 5:43 PM