In recent years i've come across a lot of abstractions over abstractions for the sake of abstractions, too many in fact. Its not even funny how laughably overcomplicated designs became to "make things easier", when in fact actually managing it, or simply fully grasping "it" became abysmally hard(not because the concepts are hard, but due to the sheer volume of abstractions and pulled codebase)
Well, developers want to look smart, and easy things don't look that way at least from a first sight. Only later you realize that making really easy system that actually solves the problem is pretty hard
The problem here is most of the software that we write for pay we don't get to own license we don't really get a cut of the sales we just get the salary paid to develop it. And
The crazyness of all of these abstractions and ecosystems is probably the reason for myself having selected bash with simple gnu tools as my main base of operations. It might not have many features itself without the gnu tools, but it seems to stay pretty much the same for a long time and it is small enough to actually fully learn how to use it. The inability to just pull in bash-packages and libraries easily made me make my own for the sake of having a portable unix/windows/wsl toolkit. I think bash is perfect for the administrative glue you need to start, manage and generally orchestrate various processes.
15:30 is a great point. When I got my current job I struggled for a while because I wasn't familiar enough with the industry. Then people talk with specific jargon, use acronyms and specific terms and you are there writing them all down so you can try to decode later what was communicated :D Languages, frameworks etc. are tools, and the domain knowledge is way more valuable in my opinion than knowing the tools.
I keep agreeing! I often get asked for C++ projects as freelancers. And my first question always is: “what is it that they are developing?” Because my background is in medical, graphical and low-level systems/embedded. I don’t know about simulation of traffic and tunnel emergency systems. That was the last requests, and the head hunter (they should not exist absolutely useless middle man)) was like but C++ is C++… And I couldn’t make him see that C++ was just a tool. I can have a screw driver and be a luthier that doesn’t mean I know how to build for example houses. We are technically both carpenters and some knowledge translates but they are two very different domains of carpentry. We both use viles, saws and routers but we use them so differently.
You should see some of the massive, profit generating, and quite scalable systems I have written using... BASH. No, it's not the only language I know by a long shot, but depending on the domain of the problem, it can be all the tool you need, when used properly. Tools are just that. Sometimes good old tie wire is better than a custom fabricated bracket or zip ties, also.
12:50 is a very good topic, I find myself leaning towards developing an expertise on specific domain in a particular industry rather than immediately adapting to latest fancy tooling, framework and languages. Nowadays more and more people can create or develop web or mobile app, we need to take another step of specialization, something that is more specific than being just a mobile or web dev which will make us more important in team and company.
I have a master's degree in Banking and Finance because I used to work there. I have been workins as a software dev for the last 6 years and I always tried to work on finance/fintech projects as I knew I could deliver value beyond software engineering itself. Glad to see I am not the only one thinking that way
IMO a lot of the reason for heavy cycling of web technology is that many many many of the tools are incredibly horrible and bad. When a better tool happens it's only marginally better and so on so it gets replaced eventually too and so on. Thankfully the cycle seems to be tightening a little bit. Vite for example as a replacement for Webpack feels like about a 1000 year shift. Vite is good enough it might be around for a while except cases where some proprietary tool is used inside of a larger package.
Really entertaining talk. As someone who loves creating UIs I can’t imagine preferring or being limited to the set of Microsoft-certified checkboxes and sliders! I definitely would have been in the non-rectangular bitmapped design camp back in the day if I was born a decade earlier!
Software dev is now like car repair. Farmed out to the cheapest worker somewhere in a 3rd country. CEOs don't care about bugs or software with defects. Ship it even if it barely functions, and then hire more h1b workers to fix the bugs later.
I agree with your take, but it's possible to change minds by producing high quality software which reduces support costs. Management speaks in $$$, so you have to show them that outsourcing has hidden costs.
@@7th_CAV_Trooper Offshored developers can write the worst code possible and still be cheaper than paying locals in the US a normal salary. CEOs don't care, especially right now with high inflation.
@@censoredeveryday3320 a whole team of offshored developers costs as much as a single USA based developer, i can't blame the CEO's i'd make the same choice, even when their code is inferior it's not as bad as you guys like to make it seem and they can in fact make stuff work which is all the CEO cares about. I've seen more university educated first-world developers make crass mistakes than your average third-world frameworker, and usually the mistakes come about due to hubris, wanting to implement overengineered solutions and predict requirements that were never made, designing insane architectures of hundreds of microservices loosely tied together into a system etc, spending months on months fine tuning these overengineered solutions only for their company to get beaten to the market and made irrelevant in the process. The key is not university developers from the first-world, it's monitoring, auditing etc. And once you have that in place you reduce the risks involved with having cheaper developers since not everything is on their backs. And again people really grossly and racistly underestimate developers from the third world, software development isn't as complex as people like to make themselves believe it is People are just alarmed because it's all digital now and because it's all digital companies no longer need to pay a premium for people based in their own country and that sucks, but that was always a matter of time, all digital desk jobs are eventually likely to get outsourced
Software never was 'art'. It has always been an 'engineering' profession. It is only in recent years when UI 'artists' have been given permission and tools (React/Javascript/Node) that has enabled them to come down the entire tech stack and convert everything into 'art'. Of course, big business likes this because it is cheaper to use UX designers to build systems than it is to use properly qualified software engineers, but apparently, short-term cost savings are more important than quality and long term management/maintainability. The reason why we have so many poorly built back-end systems these days is because UI 'artists' have been allowed to cross into 'engineering' domains that they don't have experience of.
I used to think this untill i tried nextjs. Shit was stupid simple. It was like coding in roblox. It just got it done and I didn't really complain about it. Didnt even realize I was using it half the time.
It's true that the learning curve gets kind of old after about a decade. I began doing less web software development and more embedded systems where I try to squeeze as many features as possible into a single 8-bit or 16-bit chip. IoT is becoming more of a thing anyway, and it's could be useful for automation on my homestead.
Oh man web dev in 1995, that was when I started to hate the web. Perl cgi-bin, mSQL. Capturing the HTTP request to get the tokenized arguments ugghhh…. And using tcpdump to see what dynamic sql was generated and what web requests came in and out. React and C# Blazer improved it but it’s still not as flexible and robust as just desktop software. I still hope WASM will take off, where we can just developed desktop applications (that are blazingly fast) with whatever library and it would be smart enough to abstract that into wasm. But…. The problem is the fact that each OS has a different way of professing graphics and to cross compile say Qt (I love it) to then have some web graphic abstraction is really hard. We should have a unified Graphics api that works on everything and is really simple like we used in DOS, just a memory block you write your data into per pixel. Your graphics/ui libraries can actually compile to render that and wasm can then easily use that. We went too far with idiotic abstractions. Why is it so incredibly hard to just render a single pixel through hardware these days?! All the proprietary GPUs uggghh
I've always been a bit weary about frameworks and very rarely it's actually helping. In my experience it often ends up creating more problems than it solves.
Depends a lot! I remember writing my own ORM framework for Android, because object mapping was too tedious. Spring may be good too. or Nest. But sometimes they are overkill indeed
‘The way I did it back in the day man, that was art. It used to be a honor to make apps that look like basic windows using all the windows tools’ ‘What these kids do today isn’t art’
With all respect, I couldn't disagree more. My daughter shared with me one day "code is art that does stuff." I know that idea or even the phrasing isn't original to her but it summarized exactly my feelings and I carry it with me every day. I specialize in automations. When I automate a thing that previously took myself or another person or group of people significant energy or time, I FEEL like Michaelangelo. To me, it's so much more than a vocation. The language is the medium; Each line is a brush stroke; I could easily make a dozen more sappy comparisons. When I'm deep in code, It's easy to miss the forest for the trees, but when I step back and take the forest in, I'm always amazed.
Okay not strictly relevant, but I would say learning the accordion is orders of magnitude more difficult than an expert accordian player learning a new song. The analogy is upside down. The world's greatest accodian player could play most things by ear after a first listen.
Art is in the details. Yes, paintings that have no other use than to be looked at is often considered art but that's only because it lacks another classification. Art is in the eye of the beholder and there's as much chance now that someone somewhere sees art in software as there always has been. Outside of old men waxing poetic about how good things used to be nothing has changed in that aspect. Don't get me wrong, many things have gotten objectively worse over time but software as art hasn't died just because it is no longer the domain of the sweaty neckbeards. That's not a jab, I'm probably in that category myself. The main difference is that technology has gone from enabling people to do wonderful things to a tool used to oppress. Software today is just as capable of producing wonderful and unique masterpieces but the pressure to get on the hamster wheel has never been stronger. In fact it might even be more capable since open source software is one of the last ways disrupt societal norms by providing alternatives when companies overstep.
"Solve this problem in whatever language you LIKE" - Dylan Beattie but many programmers HATE TypeScript, because it does affect how you think. it's a kind of mental strait jacket. so unfortunately the language does matter and the crimson on accordion analogy is good, just the other way around. i didn't see any accordions behind you, but many guitars instead...
I think focus is too much on the technology. I'm a .NET developer, 10 years of experience, and I see that a lot of devs still struggle with technology and producing code - and they are not even nerd who live for programming. They struggle to finish tasks, not delivering features that matter. They never grow past that and have the interesting conversation about software design and so. I rarely find someone who I can talk deeply about software development or even the technical side. And now companies seem to look for these people that I mention since they are the ones delivering without questioning the meaning of what they do.
Yeah, many now decided that it's a blue collar job that just happens to pay well. We went from "it's an art", because of the super capable high IQ individuals to "it's a trade", because the rest of the population really wants to believe they can do it too. Get it? Still no? Sorry, it's just SO funny. Need to go change oil before the mechanic at the garage has left. Oh, I'm sorry, "automotive industry engineer".
If you ask why we need frameworks. Think about a company that makes toys. Company doesn't give a shit how you do it but you need to make 100 a day, because all the other competitors produce them at that rate. The catch is you don't have an assembly line, and the other companies do. Good luck.
Well ok, it is important to have feeling of purpose and belonging doing any job, but expecting to express something artistic in developer position is unrealistic to me. You are correct that there is that aspect in engeenering, but there is no place for it in writing business logic. For me I get artistic feeling when writing abstractions and working on clean code. Which is main reason I'm not a dev. Not mixing a job and passion is working for me. At the end of the day your job is to make those 100 toys, and if you are unhappy about that, than maybe it's not for you. Or you need more realistic expectations. Designers job is to make something beautifully, devs job is to implement it, by tedious engeenering process.
I agree that there’s too many different technologies in IT and all of them are crap! I find myself reaching back to C (or Zig) and procedural development. Because the best software I wrote was raw C and assembly and they are still running in certain places (after almost 30 years). Web crap doesn’t even live for 5 years because they’ll rewrite in the “next best thing”. I hate Web development, it’s a disease! Just like browsers are terrible things for high performance software.
@@architectureweekly it's meant for image manipulation is what I'm trying to say. It's good for a lot of stuff, but high performance computing isn't one. Information management systems are one area where it thrives, like web apps. Where IO is more of a bottleneck than CPU.
Co-Fucking-Rect. "Safety" is always the excuse, and people spend their time on the dumbest things. I already stopped honesty, the whole world around it is just filled with arbitrary and annoying stuff.
05:09 Hey, I built my own encryption system! The existing ones all have backdoors. I implemented ChaCha20 from RFC references and ECDH with M-511 from research papers.
@@architectureweeklybro sorry to say, but WTF? You think someone would implement such stuff and NOT F*** VERIFY IT??? WTF?? I can't imagine that to be possible and I find the question very insulting. I mean you will be very curious after coding that whether it works, right?
@architectureweekly But here the long answer in case it was not just an insult. Of course you know as well as I do that every production code is tested. I have 100% test case coverage. Apart from that, Encryption is actually one of the FEW moments where it's actually a really good idea to do test-driven-development. RFC in particular offers a bunch of test vectors in their documents that you can use to test subroutines of ChaCha20 for etc. There's stuff like quarterRound, bit rotations, etc. What, you think I write arcane bit rotation clusterf**k without test vectors? On top of that I have done entropy diagrams on files I encrypted and measure the entropy of the encrypted results in the tests. The internet's security is precisely so sh** because what you do "just take a library" actually has serious flaws. If you start to research what elliptic curves they actually use in public packages and how the NSA hacked servers etc, it will send you down a deep mathematical rabbit hole. For the record, I'm a mathematician. To be more precise: NIST makes standards that have known backdoors (P256 and P384) etc. that are solely implemented for example in the most popular crypto flutter packages. There are side channel attacks that you allow to happen if you don't write your code in a particular way. The most widely used curve Curve25519 actually just has 128 bit security, which falls down to a root of 64 bit if masses of elliptic curves are attacked. AES has several bad modes that should never be used (like ECB). Even GCM is flawed. AES is broken as well as most elliptic curves and most packages you use will use a combination of AES (unsafe symmetric encryption) plus an elliptic curve with backdoors for the NSA. I can guarantee you "they" have their moles in a bunch of crypto projects and a bunch of them are insecure, and I am not even talking yet about JavaScript. It is furthermore documented that "they" sometimes just even openly pay millions to have people willingly adapt the backdoors.
@@architectureweekly Ah, btw, nice takes in the Podcast. I found this discussion really enjoyable to listen to. Personally, I belive we should flip the table of BigTech and make a new Browser with 3D and without JavaScript, but instead with an event based programming language, maybe even sth Lua-Like.
@@train_xcI see building a 3D printer both in software and hardware/mechanics as an art, You can print with it whatever models you want which is definitely an artistic task
Don’t agree with the analogy. Learning an instrument and then applying to different problems is far easier than the other way around. Becoming an expert musician/practitioner takes practice and time. My experience tells me that learning domains/knowledge is far easier than the other way around.
Software engineering was never, is never and will never be art. Stop diluting yourself into thinking this. Its just a means to someones endgame and yours if you want to eat, nothing more.
In recent years i've come across a lot of abstractions over abstractions for the sake of abstractions, too many in fact. Its not even funny how laughably overcomplicated designs became to "make things easier", when in fact actually managing it, or simply fully grasping "it" became abysmally hard(not because the concepts are hard, but due to the sheer volume of abstractions and pulled codebase)
Well, developers want to look smart, and easy things don't look that way at least from a first sight. Only later you realize that making really easy system that actually solves the problem is pretty hard
@@architectureweekly smart men admire simplicity
CV driven development ;).
We like you and your experience om the Jones great, but we need 15 years of experience in k8s, sorry
Keep it simple is what I always say!
Have been in the process of fixing up a lot of legacy software. A lot of it has been deleting layers and dependence to make things supportable.
If software engineering was art, why would so many software engineers be rich!
Not all artists are poor.
JK Rowling, JRR Tolkien and his family, basically anyone whose name you know in Hollywood...
Yeah, but these are exceptions rather than rule. I would predict most (>80%) are not wealthy and have to count each penny.
The problem here is most of the software that we write for pay we don't get to own license we don't really get a cut of the sales we just get the salary paid to develop it. And
@@Aleks-fp1kq lol
Interviewer was excellent. He turned Dylan loose and didn't get in the way. Subbed. Looking forward to more of this.
Thank you very much, more interviews coming!
beautifully put: "Flexibility that you are not using is a cost you have to service every day that you work on that code base"
The crazyness of all of these abstractions and ecosystems is probably the reason for myself having selected bash with simple gnu tools as my main base of operations.
It might not have many features itself without the gnu tools, but it seems to stay pretty much the same for a long time and it is small enough to actually fully learn how to use it.
The inability to just pull in bash-packages and libraries easily made me make my own for the sake of having a portable unix/windows/wsl toolkit.
I think bash is perfect for the administrative glue you need to start, manage and generally orchestrate various processes.
Simplicity is indeed the key of having a manageable and scalable solution
You can run the world off bash and cron, everything else is just decoration
technically you can, but you won't be content with the performance and latency... speaking from experience
15:30 is a great point. When I got my current job I struggled for a while because I wasn't familiar enough with the industry. Then people talk with specific jargon, use acronyms and specific terms and you are there writing them all down so you can try to decode later what was communicated :D
Languages, frameworks etc. are tools, and the domain knowledge is way more valuable in my opinion than knowing the tools.
Yep, for tech you can always ask how solve a narrowed down problem; with domain knowledge you need to figure what to build first
"yeah ! programming is awesome ; just it sucks when you do it for a living"
So true !
Indeed!
I keep agreeing! I often get asked for C++ projects as freelancers. And my first question always is: “what is it that they are developing?” Because my background is in medical, graphical and low-level systems/embedded. I don’t know about simulation of traffic and tunnel emergency systems. That was the last requests, and the head hunter (they should not exist absolutely useless middle man)) was like but C++ is C++… And I couldn’t make him see that C++ was just a tool. I can have a screw driver and be a luthier that doesn’t mean I know how to build for example houses. We are technically both carpenters and some knowledge translates but they are two very different domains of carpentry. We both use viles, saws and routers but we use them so differently.
How can you do graphics and embedded without c++ 🤷🏻♀️ i always use cpp. I would use C, but my doctor told me my legs wont take another blow.
@@dkudlay C was the first portable language that was created to make Unix. So it is possible. Hell it’s been done in assembly many a time 🤣
@@CallousCoder Hell is still assembly. And wise-versa.(:
You should see some of the massive, profit generating, and quite scalable systems I have written using... BASH. No, it's not the only language I know by a long shot, but depending on the domain of the problem, it can be all the tool you need, when used properly. Tools are just that. Sometimes good old tie wire is better than a custom fabricated bracket or zip ties, also.
title: software is not art anymore
me: I never thought it was art. I thought it just a engineering stuff
You can make art with almost anything, and indeed with software too. Too bad we abandoned it
12:50 is a very good topic, I find myself leaning towards developing an expertise on specific domain in a particular industry rather than immediately adapting to latest fancy tooling, framework and languages. Nowadays more and more people can create or develop web or mobile app, we need to take another step of specialization, something that is more specific than being just a mobile or web dev which will make us more important in team and company.
I have a master's degree in Banking and Finance because I used to work there. I have been workins as a software dev for the last 6 years and I always tried to work on finance/fintech projects as I knew I could deliver value beyond software engineering itself. Glad to see I am not the only one thinking that way
IMO a lot of the reason for heavy cycling of web technology is that many many many of the tools are incredibly horrible and bad. When a better tool happens it's only marginally better and so on so it gets replaced eventually too and so on. Thankfully the cycle seems to be tightening a little bit. Vite for example as a replacement for Webpack feels like about a 1000 year shift. Vite is good enough it might be around for a while except cases where some proprietary tool is used inside of a larger package.
But that's still the neverending cycle of slightly better tech, and now everything should be rewritten because it's a hype now
Great interview and conversations ! very interesting, and all presented with a wholesome, positive outlook. Thanks
Listening Dylan is always fun and learning.
This is true with me. It takes me less time solving a problem from scratch instead of wating hours searching for a solution online.
SE is an art just like cooking. It just that some are chefs in their own restaurant and others work in mcdonalds.
Really entertaining talk. As someone who loves creating UIs I can’t imagine preferring or being limited to the set of Microsoft-certified checkboxes and sliders! I definitely would have been in the non-rectangular bitmapped design camp back in the day if I was born a decade earlier!
Agree, it's both limiting, but also liberating at the same time as you're now able to focus on the actual task to solve
Software dev is now like car repair. Farmed out to the cheapest worker somewhere in a 3rd country. CEOs don't care about bugs or software with defects. Ship it even if it barely functions, and then hire more h1b workers to fix the bugs later.
I agree with your take, but it's possible to change minds by producing high quality software which reduces support costs. Management speaks in $$$, so you have to show them that outsourcing has hidden costs.
@@7th_CAV_Trooper Offshored developers can write the worst code possible and still be cheaper than paying locals in the US a normal salary. CEOs don't care, especially right now with high inflation.
@@censoredeveryday3320 a whole team of offshored developers costs as much as a single USA based developer, i can't blame the CEO's i'd make the same choice, even when their code is inferior it's not as bad as you guys like to make it seem and they can in fact make stuff work which is all the CEO cares about.
I've seen more university educated first-world developers make crass mistakes than your average third-world frameworker, and usually the mistakes come about due to hubris, wanting to implement overengineered solutions and predict requirements that were never made, designing insane architectures of hundreds of microservices loosely tied together into a system etc, spending months on months fine tuning these overengineered solutions only for their company to get beaten to the market and made irrelevant in the process.
The key is not university developers from the first-world, it's monitoring, auditing etc. And once you have that in place you reduce the risks involved with having cheaper developers since not everything is on their backs.
And again people really grossly and racistly underestimate developers from the third world, software development isn't as complex as people like to make themselves believe it is
People are just alarmed because it's all digital now and because it's all digital companies no longer need to pay a premium for people based in their own country and that sucks, but that was always a matter of time, all digital desk jobs are eventually likely to get outsourced
Who is sending their car overseas to get fixed?? What?
3rd worlds write better than you
Software never was 'art'. It has always been an 'engineering' profession. It is only in recent years when UI 'artists' have been given permission and tools (React/Javascript/Node) that has enabled them to come down the entire tech stack and convert everything into 'art'. Of course, big business likes this because it is cheaper to use UX designers to build systems than it is to use properly qualified software engineers, but apparently, short-term cost savings are more important than quality and long term management/maintainability.
The reason why we have so many poorly built back-end systems these days is because UI 'artists' have been allowed to cross into 'engineering' domains that they don't have experience of.
Yea I cant ever really understand how tf to use CSS and any webdev shit in general.
Its just incredibly gay.
I used to think this untill i tried nextjs.
Shit was stupid simple. It was like coding in roblox.
It just got it done and I didn't really complain about it. Didnt even realize I was using it half the time.
Before trying nexjs what language/framework were you working on ? Also how easy is it for a beginner to start with next.js
It's true that the learning curve gets kind of old after about a decade. I began doing less web software development and more embedded systems where I try to squeeze as many features as possible into a single 8-bit or 16-bit chip. IoT is becoming more of a thing anyway, and it's could be useful for automation on my homestead.
This video came at a perfect time for me, so much value in this knowledge. Thanks!
Glad it was helpful!
I've been using c++ for 30 years, so I have a C++ background. I use commercial software and none is microsoft based. And I do php
I'm re-writing our bank's COBOL backend in Rockstar 2.0 Beta.
Oh man web dev in 1995, that was when I started to hate the web. Perl cgi-bin, mSQL. Capturing the HTTP request to get the tokenized arguments ugghhh…. And using tcpdump to see what dynamic sql was generated and what web requests came in and out.
React and C# Blazer improved it but it’s still not as flexible and robust as just desktop software. I still hope WASM will take off, where we can just developed desktop applications (that are blazingly fast) with whatever library and it would be smart enough to abstract that into wasm. But…. The problem is the fact that each OS has a different way of professing graphics and to cross compile say Qt (I love it) to then have some web graphic abstraction is really hard.
We should have a unified Graphics api that works on everything and is really simple like we used in DOS, just a memory block you write your data into per pixel.
Your graphics/ui libraries can actually compile to render that and wasm can then easily use that.
We went too far with idiotic abstractions. Why is it so incredibly hard to just render a single pixel through hardware these days?! All the proprietary GPUs uggghh
what a show, i really enjoyed that. Dylan reminds me of myself.
This was an excellent discussion, lots of this resonates
Thank you!
I can so relate, every job always fix problems by adding more code, hire more people. Money rules 😊
Great observations gents. You nail all of the issues I have with the industry.
Thank you! Glad it resonated
This was amazing. Always a pleasure to hear the interesting takes of Dylan Beattie. Thanks for this.
I've always been a bit weary about frameworks and very rarely it's actually helping. In my experience it often ends up creating more problems than it solves.
Depends a lot! I remember writing my own ORM framework for Android, because object mapping was too tedious. Spring may be good too. or Nest. But sometimes they are overkill indeed
I'm sure that Carpenters who used to handcrafted Furniture felt the same way about industrial processes to produce chairs
To this day handcrafted stuff is bougie and higher quality than mass produced
Great discussion, I feel like the fundementals have been shaken up because of all these magical libraries
thank you!
appreciate the King Crimson reference
One example for Rails performance is websockets (via ActionCable) and then use of the ORM you have to be mindful of
It is just a tool. Somehow Basecamp manages to be ok, even if ActionCable is not the most performant thing
‘The way I did it back in the day man, that was art. It used to be a honor to make apps that look like basic windows using all the windows tools’
‘What these kids do today isn’t art’
Frontend became a joke. With all abstraction and meta frameworks, reminding me of PHP 5.6
After a while i get into, "get it done and go home"
Agree. You're not that excited about tech, but rather about the product
Hey, thanks for the interview. Could you please send a link to the ‘Benedict’ github repository that Dylan mentioned on 21:10. Thank you!
Sure! Here it is: dylanbeattie.github.io/benedict/, and github: github.com/dylanbeattie/benedict
Didn’t use VS/Windows for 7 years. Rider, Mac, Linux
Same. But had to buy a windows laptop for my wife and felt meh
Software is not a art, its software. Yes, it can be like a art, but it was meant to run computers, not make you feel like the next Michelangelo.
With all respect, I couldn't disagree more. My daughter shared with me one day "code is art that does stuff."
I know that idea or even the phrasing isn't original to her but it summarized exactly my feelings and I carry it with me every day.
I specialize in automations. When I automate a thing that previously took myself or another person or group of people significant energy or time, I FEEL like Michaelangelo. To me, it's so much more than a vocation.
The language is the medium; Each line is a brush stroke; I could easily make a dozen more sappy comparisons.
When I'm deep in code, It's easy to miss the forest for the trees, but when I step back and take the forest in, I'm always amazed.
Okay not strictly relevant, but I would say learning the accordion is orders of magnitude more difficult than an expert accordian player learning a new song. The analogy is upside down. The world's greatest accodian player could play most things by ear after a first listen.
So Dylan has not written a line of Java code in "20 years" and he first heard about Firebug in 2004. Sounds like a great new tool ended his career.
Totally closed the door in Java world for him
Art is in the details. Yes, paintings that have no other use than to be looked at is often considered art but that's only because it lacks another classification. Art is in the eye of the beholder and there's as much chance now that someone somewhere sees art in software as there always has been. Outside of old men waxing poetic about how good things used to be nothing has changed in that aspect. Don't get me wrong, many things have gotten objectively worse over time but software as art hasn't died just because it is no longer the domain of the sweaty neckbeards. That's not a jab, I'm probably in that category myself. The main difference is that technology has gone from enabling people to do wonderful things to a tool used to oppress. Software today is just as capable of producing wonderful and unique masterpieces but the pressure to get on the hamster wheel has never been stronger. In fact it might even be more capable since open source software is one of the last ways disrupt societal norms by providing alternatives when companies overstep.
Hope isn’t dead, indeed
I thought he was cannibal corpse vocalist
Yes!
"Solve this problem in whatever language you LIKE" - Dylan Beattie
but many programmers HATE TypeScript, because it does affect how you think. it's a kind of mental strait jacket.
so unfortunately the language does matter and the crimson on accordion analogy is good, just the other way around.
i didn't see any accordions behind you, but many guitars instead...
this was dope! dylan is cool
Thank you!
@@architectureweekly for sure!
I think focus is too much on the technology. I'm a .NET developer, 10 years of experience, and I see that a lot of devs still struggle with technology and producing code - and they are not even nerd who live for programming. They struggle to finish tasks, not delivering features that matter. They never grow past that and have the interesting conversation about software design and so. I rarely find someone who I can talk deeply about software development or even the technical side. And now companies seem to look for these people that I mention since they are the ones delivering without questioning the meaning of what they do.
Subbed , fun talk
Such a good interview.
Thank you!
@33:50 I literally have winamp open, been using since 1998
It is an awesome piece of technology!
not buying for a second that a guitar player could learn accordion faster than a master accordion could learn all those songs...
Yeah, many now decided that it's a blue collar job that just happens to pay well.
We went from "it's an art", because of the super capable high IQ individuals to "it's a trade", because the rest of the population really wants to believe they can do it too.
Get it?
Still no?
Sorry, it's just SO funny.
Need to go change oil before the mechanic at the garage has left. Oh, I'm sorry, "automotive industry engineer".
King Crimson - quality cultural technology!
Yeah, nerds conquered the world and the became the villain.
It's hardly surprising. Nerds are people with primitive desires like any human, desires such as greed, status chasing, short-term thinking etc.
Make Software Art Again
Please don't! It is an engineering profession, not 'art'.
38:45 damn, perfectly described my experience 🥲
If you ask why we need frameworks. Think about a company that makes toys. Company doesn't give a shit how you do it but you need to make 100 a day, because all the other competitors produce them at that rate. The catch is you don't have an assembly line, and the other companies do. Good luck.
That's correct, but the problem we discussed is that we stopped doing anything aside manufacturing as an industry
Well ok, it is important to have feeling of purpose and belonging doing any job, but expecting to express something artistic in developer position is unrealistic to me. You are correct that there is that aspect in engeenering, but there is no place for it in writing business logic. For me I get artistic feeling when writing abstractions and working on clean code. Which is main reason I'm not a dev. Not mixing a job and passion is working for me. At the end of the day your job is to make those 100 toys, and if you are unhappy about that, than maybe it's not for you. Or you need more realistic expectations. Designers job is to make something beautifully, devs job is to implement it, by tedious engeenering process.
Reaper is pretty awesome, runs on linux.
Resolve does video..blender does...fusion or nuke depending on your needs. I don't really like adobe.
Anymore? I think it wasn't art since we stopped using assembly exclusively.
are react web devs the abstract artists that throw paint on a wall?
Are you a dotnet dev or are you a C# dev? Nobody is a dotnet dev until the use dotnet in any other language other than VB and C#.
I agree that there’s too many different technologies in IT and all of them are crap! I find myself reaching back to C (or Zig) and procedural development. Because the best software I wrote was raw C and assembly and they are still running in certain places (after almost 30 years). Web crap doesn’t even live for 5 years because they’ll rewrite in the “next best thing”. I hate Web development, it’s a disease! Just like browsers are terrible things for high performance software.
Ruby isn't meant for what you described.
What it is meant for?
@@architectureweekly it's meant for image manipulation is what I'm trying to say.
It's good for a lot of stuff, but high performance computing isn't one.
Information management systems are one area where it thrives, like web apps.
Where IO is more of a bottleneck than CPU.
YOU GIVE REST A BAD NAME
Dotnet rules😂
Co-Fucking-Rect. "Safety" is always the excuse, and people spend their time on the dumbest things. I already stopped honesty, the whole world around it is just filled with arbitrary and annoying stuff.
05:09 Hey, I built my own encryption system! The existing ones all have backdoors. I implemented ChaCha20 from RFC references and ECDH with M-511 from research papers.
Great stuff! Have you verified the implementation anyhow?
@@architectureweeklybro sorry to say, but WTF?
You think someone would implement such stuff and NOT F*** VERIFY IT???
WTF??
I can't imagine that to be possible and I find the question very insulting.
I mean you will be very curious after coding that whether it works, right?
@architectureweekly But here the long answer in case it was not just an insult. Of course you know as well as I do that every production code is tested. I have 100% test case coverage. Apart from that, Encryption is actually one of the FEW moments where it's actually a really good idea to do test-driven-development. RFC in particular offers a bunch of test vectors in their documents that you can use to test subroutines of ChaCha20 for etc. There's stuff like quarterRound, bit rotations, etc.
What, you think I write arcane bit rotation clusterf**k without test vectors?
On top of that I have done entropy diagrams on files I encrypted and measure the entropy of the encrypted results in the tests. The internet's security is precisely so sh** because what you do "just take a library" actually has serious flaws. If you start to research what elliptic curves they actually use in public packages and how the NSA hacked servers etc, it will send you down a deep mathematical rabbit hole. For the record, I'm a mathematician. To be more precise: NIST makes standards that have known backdoors (P256 and P384) etc. that are solely implemented for example in the most popular crypto flutter packages. There are side channel attacks that you allow to happen if you don't write your code in a particular way. The most widely used curve Curve25519 actually just has 128 bit security, which falls down to a root of 64 bit if masses of elliptic curves are attacked. AES has several bad modes that should never be used (like ECB). Even GCM is flawed. AES is broken as well as most elliptic curves and most packages you use will use a combination of AES (unsafe symmetric encryption) plus an elliptic curve with backdoors for the NSA.
I can guarantee you "they" have their moles in a bunch of crypto projects and a bunch of them are insecure, and I am not even talking yet about JavaScript. It is furthermore documented that "they" sometimes just even openly pay millions to have people willingly adapt the backdoors.
@@architectureweekly Ah, btw, nice takes in the Podcast. I found this discussion really enjoyable to listen to. Personally, I belive we should flip the table of BigTech and make a new Browser with 3D and without JavaScript, but instead with an event based programming language, maybe even sth Lua-Like.
At this point I saw all sorts of mispractice in software development, that you can hardly surprise me
Nothing is art anymore.
Dylan has great talks, but this is just a rant, totally unrelated to the question.
Software Engineering is never an art. It is what it always was, is and will be - ENGINEERING
Well, it's a tool, and you can use it both to create products and to create art
@@architectureweekly engineering is engineering. It is not tool.
Similar to mechanical engineering or civil or electrical engineering.
@@train_xcI see building a 3D printer both in software and hardware/mechanics as an art, You can print with it whatever models you want which is definitely an artistic task
no it's not. It downgraded a lot and became overengineering.
Don’t agree with the analogy. Learning an instrument and then applying to different problems is far easier than the other way around. Becoming an expert musician/practitioner takes practice and time. My experience tells me that learning domains/knowledge is far easier than the other way around.
These reeks of "boomer yells at kids"
no need to be
Software engineering was never, is never and will never be art. Stop diluting yourself into thinking this. Its just a means to someones endgame and yours if you want to eat, nothing more.