Just curious.. what language(s) are you using now?
423 karma · joined October 5, 2023
Just curious.. what language(s) are you using now?
It was at an era where someone good at their craft can get the recognition they deserve. However, while some things he managed to figure out himself.. other things were ideas from others. He simply tried it and reviewed the results!
Looking in the games industry today - an 'individual' is not going to get the same recognition like John Carmack back in the day (or Ken Silverman, etc)
This industry is LARGE. Any god-like programmer trying things within a large corporation is not likely to get noticed today as they hide away in the background pushing an in-house games engine forward. I am sure there are a fair number of John Carmacks out there. Invisible... nameless legends pushing things, etc.
As for indie companies - why risk trying to be a 2026 version of John Carmack when Godot, Unreal, etc, exists. Its a different world today!
Same thing for AI. I bet there have been some legendary programmers working on AI in the last 10 years. Again, nameless individuals behind the brand.
If any names are mentioned... its likely CEO's or other higher ups... not the talent underneath. I guess thats good business strategy and works [for the business].
Focusing on John Carmack - I am not taking anything away from him. He is a legend. I am sure he contributed towards VR before and after Meta purchase. With AI.. I guess we will see.
At the end of the day the guy could walk away and focus on hobbies. Still has a lot of batteries left. More power to him.
PHP devs vs dotnet devs. Java devs to Go devs.
Certain groups will have their preferences. I guess it is cultural. However there can still be an overlap.
From my personal experience in the world of dotnet development, pretty much everyone was using Visual Studio (IDE) back in 2005 onwards and it would have been considered EXTREMELY STRANGE if anyone was using anything else.
The thought that anyone would want to use a Text Editor would have been a step backwards in their minds. IDE's are the best and what would top Visual Studio in this domain?
I remember playing with SharpDevelop which was cool. I also remember using Aptana for javascript. I think that's still going today but likely different now.
However... being an Emacs guy since around 2006-2008 - I always tried to use it for C# (and VB.NET then) development but couldn't get it fluent enough. I was using Emacs for practically everything else like C, PHP, Scheme, etc.
In 2012 I was using in a room with PHP devs. They were using Sublime Text 2. No IDE or anything. I also worked with a Mac guy creating mobile apps with Objective-C. He was using Vim. We had a good time comparing Emacs and Vim.
Back to dotnet from 2014 to now and most are still using Visual Studio IDE. Some gradually moved or tried Visual Studio Code. From my experience, it still seems Visual Studio IDE is still king for dotnet devs.
For me, since .NET 5, I found a nice sweet spot developing dotnet in emacs. Everything done with keybindings -- NO MOUSE.
I still get strange looks but nowhere near the same if I was doing the same things 10 years ago. I think Visual Studio Code has neutralised the IDE vs Editor discussion.
I did try Jetbrains, though. Looked really good!
I also keep an eye on SharpIDE.
At the end of the day -- I don't care what you use if it makes you comfortable and get stuff done. If you prefer IDE's then use it. If you prefer a powerful text editor... use it.
It has to serve Microsoft one way or another. They have changed their tune with Open Source since 2010 (ish)
A number of their software/tools have eventually supported Linux as well as Windows. dotnet is a great example of this. dotnet core was released around 2016.
Why did they do that? My guess is because of Azure to increase their user base. The option for a Linux VM as well as Windows.
Personally I do think they have a 'master plan' within the world of Open Source. It might not be to eradicate it but to gain a monopoly over it.
I think they have accepted they cannot beat Linux in an simple OS/Kernel war. However, they can control Linux with everything else needed for it to be usable. With the amount of money Microsoft can throw at it, they "could" run tactics for users to use Powershell instead of Bash. To use SQL Server instead of MySQL/MariaDB/Postgres. To use dotnet instead of Java/Go. This can be done without people realising its orchestrated by Microsoft.
This sounds laughable to a typical linux guru but we are getting closer the "the year of the linux desktop" and many that do switch are pure Windows users. If Microsoft play their tactics well, these people will want to take their Windows knowledge with them rather than learn the linux way.
This brings us back to WSL.
Microsoft made it extremely easy to install Linux thanks to WSL. You think how many IT users there were that only used Windows all their career. Since WSL that number has shrunk a lot!
Imagine them using Linux for the first time via WSL:- "Oh.. awesome. I can still use Powershell! I wonder if I can install SQL Server. Probably can with Docker! Microsoft have made it rather easy for me thanks to their own distro. I might use this distro when I create a VM in Azure next month"
We shall see.
However, you are referring to the OSS community that are aware of user freedoms, software licenses... putting the end user first!
I am talking about the majority of Windows users (even tech users) who have not touched Linux. This is still a large user base.
Imagine them getting their hands wet trying out Linux for the first time via WSL. Imagine them using a default distro that holds their hand with what they are familiar with.
Regardless what the OSS community thinks, if Microsoft played their cards right, they might have gained something not just in WSL space, but also Azure.
Loads of people, even today, purposely go with Microsoft products because the business they work for supports it. Its those places that may have given a Microsoft Linux OS the chance for some percentage share.
There are people out there that are all in on Microsoft and do not care about licensing or Free/Open vs Proprietary. Some people just want to use what they are comfortable with and continue to push whatever their job covers. If there is a reason to use Linux, they likely would be happy to use a "Microsoft Distro" to keep things connected.
Truth is you are either going to be interested in programming.. or not. The question is how the brain triggers to get you interested.
I could argue the starting point (for me) was Visual Studio 6.0. (1998)
Or.. maybe.. it was Turbo Pascal and Turbo C. (1997)
Or.. maybe.. it was Quake and QuakeC. (1997)
Or.. maybe.. it was the Open University books laying around. (1995)
Or.. maybe.. it was watching DooM for the first time. (1993)
Or.. maybe.. it was playing the Amiga at my friends house (1991)
Or.. maybe.. it was playing the Amstrad at my friends house (1989-1990)
Or.. maybe.. it was the BBC Microcomputer I never got to touch in school. I saw others using it, though. (1988?)
Or.. maybe.. it was watching a zx spectrum advert around 1985. A little toddler pointing at the screen and expressing his interest to Mum. I loved that advert (and actually came across it again recently on YT) -- is this the REAL starting point?
Point is... Scratch is likely a great starting point for kids today. For some they might move to Python or something and forgetting where they started. Like me, they probably had other things before Scratch that peaked their interest.
"I wonder how they made 'X'"
Its weird how hardware works these days. We are expected to pay full price for something that Companies believe they own and control. Whether its a DVD/Bluray or even something like a Printer or Switch 2.
With the Switch 2, it seems well documented that if I try to do anything that Nintendo doesn't like then they might brick it. If that's the case, why should I pay "full price" for it if I do not own it?
Even with a Printer that can auto update itself, could be controlled by the Company. If not now then it could in the future. What if I have plans to try things with the Printer? Could that get bricked as well? Lets stop thinking that this is just something for game systems. If can be any hardware.
Now we come to laptops. Microsoft push the idea that if Windows is installed then they control the whole system! Let that sink in. I do not own this version/copy of Windows. I have the rights to use it... but Microsoft is not just calling the shots with the Operating System or contents... BUT THE WHOLE LAPTOP!
Personally, I think we are coming to an end for Games Consoles. They might have one or two more generations left, imo. I do think game systems will simply be PC's in the future, like the Steam Machine. It may not come bundled with physical media but it should ALLOW you to save your purchased games to whatever physcial media you choose. Bluray, USB stick, SD Card, etc. Whether 5, 10 or 20 years later, you should still be able to run it! None of this 'half baked' copies that contain some of the games content with the rest to be downloaded. That ** relies on some server and that won't be there forever.
This distro would have been the default under WSL. Not Ubuntu. Not Debian. Etc.
Most people would not have cared which distro. They would simply used what was provided. However, this distro would come preinstalled with Powershell, Edge, to name a few. To further that it would make it easy to install additional Microsoft software like SQL Server, Management Studio, dotnet, etc.
Simply imagine the vast majority of Windows users who have never touched Linux trying WSL for the first time and getting accustomed using tools they already know on Windows. It's likely Microsoft or their distro would gain some popularity.
While this would be common with WSL - users could also download the distro for a full install. Use what they are already comfortable with. However, if they do decide to use a different distro, they would likely have enough confidence to know how install Microsoft software on it.
Again (and thankfully) a missed opportunity.
In all, why do I care about Edge or Powershell or other Windows-based software or tools on GNU/Linux?
If there is general interest in using Edge - I, too, would like to hear it.
It just seems reinventing the wheel again and again.
I am not suggesting JSON is perfect, either. However I do prefer it to YAML (and XML) by a mile.
It's a shame s-expressions never taken off.
(select (id name)
(:from users)
(:where (= name "Peter")))
Or (orders
(order
(id 1)
(code "aa1")
(qty 32)))
I know - its a sample, but you get it. :-)I do remember my dad jumping back to Windows 3.1 atleast once, likely for the reason of performance/memory issues at the time with Win95 - but he did go back to it. Overall, it was a big step.
A couple of years later, likely to run Quake better that in did on our 486, he built his own PC. Pentium 133. I couldn't remember what RAM and HD space it had. Maybe 32MB RAM with 200GB disk or something. I am just guessing.
Regardless, running Windows 95 on it was night and day. High resolutions and smooth experience! It likely crashed a lot but when you had nothing really to compare it to, it is annoyances that were not that big of a deal back then. You just accepted it.
Of course, playing Quake on it was an absolute dream. A year or so later - we then had 3dfx cards. Good times!
Moving to Windows 98 just didn't seem like a big step to me. Windows 98 looked exactly the same as 95 except the desktop was riddled with icons to the internet. I hated it. Eventually you moved over it. Looking back, Win98 was likely a heavily improved Win95 and didn't crash as often. Again, these are things forgotten in time.
How times changed. I also had Windows 2000 at University and then moved to Windows XP. I had to keep reinstalling WinXP every 6 months as my mouse cursor would start to move downwards on its own. As much as I liked XP (eventually) it was the starting point of moving over to Linux.
My experience with Vista was not great. Again, from memory felt very bloated. Windows 7 was good. Never used Windows 8. Windows 10 was good. As for Windows 11... its simply mixed with pros and cons.
What do I mean by 'easy' ?
C books can typically be about 300-500 pages give or take. Compare that with modern languages especially a Java book in the 2000's, it would be closer to 600-1000 pages.
Why? Because half the book is talking about Object Oriented Programming.
C is simpler by comparison, once you get your head around it quirks and gotchas. Afterall, every language has their own gotchas!
To me, there is a difference between good C programmers and bad or non skilled ones. Those that understand C can write some good and efficient programs that care about performance and memory.
With all the above... the truth is that you could write this towards ANY language. They all have their pros and cons.
> I don't understand why anyone would still start a new software project in nodejs today, given the long track record of mistakes developers can make in it.
> I don't understand why anyone would still start a new software project in python today, given the long track record of mistakes developers can make in it.
> I don't understand why anyone would still start a new software project in java today, given the long track record of mistakes developers can make in it.
And dare I say this one...... ???
> I don't understand why anyone would still start a new software project in rust today, given the long track record of mistakes developers can make in it.
OK. You can argue that rust is not old enough to be labelled the "..given the long track record.." - but everything else stands.
I understand times have changed. You cannot just insert a cartridge or CD\DVD and run. Games are so large that running off a disc is not good enough anymore. They need to be installed on a hard drive. I wouldn't be surprised that some games are so large they require more than 1 bluray disc. However, they should still work "out of the box"
Well this should be the case for single player mode. For multiplayer then you may need to create an account, etc.
I don't know.
Just seems that even when you purchase a physical copy it does not contain the full game. You still have to access the internet to download additional content.
Truth is ownership. Do you really "own" your physical game? I mean you own the Disc it's on but the contents all go through the games console and their services. You essentially own the rights to play the game!
It's nothing new with Microsoft since Windows 95 (even 3.1) and their end user license. You never owned it. It's just times have changed, now. Microsoft are not just trying to control your computer via its operating system, but to control the whole computer itself.
Why is this any different for game consoles? Do you really "own" the console? I mean I am willing to put money down that one of the 3 Companies would lock you out if you tried to do something on Sony, Microsoft, or Nintendo's latest systems that "you shouldn't be"
Let that sink in. You spend how much on a console... and it really is not yours. Oh, and how much do you spend on games... and it really is not yours. Yes.. physical or not!
None of this surprises me. However, I do not know what the solution is, either. Well, other than if you purchase it, it is your copy! If it isn't, then why should I spend over £/$40 for these games?
I believe this is a chunk of the reason why I am not a gamer anymore. There are some games I still play but I don't know if I will every play the latest and greatest of games including GTA6. Maybe one day.
If I made a game - I would still follow the old method. Maybe use Steam. If you buy it then you get the files. It's yours! You can play it! It would work without the need of the internet!
Could some people pirate it? Sure. However, I am confident that if the game is good or atleast enjoyable then I would have received a nice sum of money - or atleast allow people to buy me a coffee through my website if they enjoyed it.
The biggest power is consumers have is our wallets. Say no if you disagree and don't give them money. I am willing to do such a thing. Sadly, the majority don't care. They just want ease of use. This is not just about games, but many things.
GCC, GDB, CoreUtils, etc - A COLLECTION of useful programs alongside a kernel such as Linux.
Barely relevant?
We owe our thanks to the GNU project. If Linus did not create Linux, something else would have taken it's place. "Maybe" HURD... or maybe something else.
I 100% disagree with this comment.
Lets make this clear, htmx does not swap 'entire html' - you have control to refresh whatever section of the page. That is not a full repaint.
I am beginning to wonder what tests you have done in htmx before making such a verdict.
Yes - I break my Views into "small components" - I guess it's better to say I create a lot of Partial Views. I follow a simple 'where there's one, there's many' mindset. All Partial Views are designed to return an array, even if what I need is a single record.
> Examples include user highlighting text
I've written an Application (in htmx) that has a text area for sentences. There is 'compile' function that breaks down the sentence, colouring specific words/phrases. How does it do this? htmx! It sends it back to the server-side and builds the sentence.. returning back the html with coloured texts and other meaningful attributes. It overwrites that section of the screen. It is light and fast!
The great thing is all validation and html rendering is done of the server-side. No code duplications or anything.
Now, this is perfectly fine for what I am doing. However, the text is barely no more than 30 words. If I was trying to write a text editor the we have a different type of problem. If using htmx, would likely work it out to update a portion of the editing code, perhaps per line. This would move it away from using a text area.
> Or user mid scroll through a menu, the scroll is reset to the top
I believe, with the text solution I mentioned above, I also pass it the cursor position. As we are processing the text, any changes may move the cursor - so I let the server-side handle it. This is great because the functionality written is not designed for just the web - but any 'text area' in any GUI!
From memory, with some javascript, I managed to return to the caret position once the html section was refreshed. I cannot remember 100% how I did this as I do not have access to the source code.
> On game dev: I think it's good...
I've already commented about game dev and htmx. I will paste that section here:-
Would I use htmx if writing a web-based game? probably not. I guess it would depend. I would assume I'd be writing a fair be of javascript for WebGL-based rendering and typical update logic (input, physics, health, etc)
Maybe WASM is a better choice in this domain. I don't know.
Every website you create, just like any form of application, is based on solving a particular problem. How you solve that problem can vary from dev to dev. Some devs may disagree you your solution just as you can disagree with theirs.
I do stand that htmx can be used to solve a good chunk of problems that otherwise would be done with React, or angular, and so on. Personally, I think htmx makes the problem easier to solve. Well, once you get over the learning curve of the htmx way.
To be able to build a website or SPA without writing much client code (JS, etc) is a win in my book. You don't need a dedicated front end team for larger sites. Also, the designer/UX team (if you have one) can focus on the server-side template system.
Regardless - frontend is not dead. htmx, afterwall, is written in Javascript. htmx doesn't stop you writing javascript code. It's just I hardly need it for business logic. If anything it might be used to compliment CSS.
Would I use htmx if writing a web-based game? probably not. I guess it would depend. I would assume I'd be writing a fair be of javascript for WebGL-based rendering and typical update logic (input, physics, health, etc)
Maybe WASM is a better choice in this domain. I don't know.
For example, on button click to GET html. Again, you can specify what you want to do with the returned html with attributes such as hx-swap
Unless I am misunderstanding, of course.
I do remember triggers/hooks with things like Angular and Knockout. I don't miss this method of web development.
I recommend starting small and working up with htmx. Their examples section on the official website is pretty good.
They were making a big deal with this change. In the end the change is rather minimal. The outcome is reduced javascript code and more server side html templates. Pretty much most of the code is now handled on the server side. Just organise the html templates!
Pseudo example
Instead of :-
<code>
// returning as Json
[Get]
Response GetUser(int id) {
var user = getUser(id);
return ToJson(user);
}</code>
You are just doing :-
<code>
// returning as HTML
[Get]
Response GetUser(int id) {
var user = getUser(id);
return View("som-user-template", user);
}</code>
I don't know what 'hooks' you need, but whatever they are doing you can move them over to returning/updating section of html on the screen with htmx.
It's bringing us back to that sort of web development but with modern tools and technology.
For the server side, we can use modern languages with better templating for html.
For the client, with htmx, you can do a lot of javascript such as ajax calls (load, trigger, etc) without writing javascript. With htmx you specify what you want to do inside html attributes.
So my actual javascript code ends up minimal.
I have been doing website dev since 2008. I've worked with PHP, C# (WebForms, MVC), a bit of python... not to mention maintaining an old website in Classic ASP.
2008-2010 I used C# WebForms. I didn't like it, but we still kept it simple, returning data from server side to html.
2010 I started to enjoy jQuery and saw potential returning data. Opened the door to provide more options for webdev.
Around 2014, I've started disagreeing with "modern website development" learning knockoutjs, requirejs, to eventually angularjs, npm's, etc. Sure, I learned and pushed forward but websites seemed to become more a chore and bloat overtime. Personally, I've not really invested in React.
I was starting to go round full circle to the 'old ways' just with modern tech. To me, htmx just makes webdev even more smoother.
I tried to pitch htmx to my team last year and found an opportunity to create a simple webapp. One of the devs really struggled with htmx after years of muscle memory returning json and rendering in JS/JQuery. It was a lot of "I now have to do this.. how do I solve this problem?"
I think he would have struggled with any different approach whether we changed to angular, react, etc. htmx didn't really stand a chance.
The other dev, on the other hand, didn't even bother to try it.
All I heard from the team was Blazor this, blazor that.
Personally I think it's a shame. We are a small team and would be good to avoid javascript 95% of the time. We could just generate server side code/html which, imo, would create organised code base. Easy to test as well.
Any personal web projects I still use htmx and reached a decent flow with it. Completely simplifies web dev, imo.
Thank you for your message. I appreciate you going out of your way and showing care for others - in this case my career.
I have updated my resume and looking.
I have a couple of years left in order to look after (what I now call) our legacy software, which we wrote, until we move over 100% with the new tools. It is dead end as a software engineer and don't intend to fall behind.
We are transitioning into a role that's mostly extending a main business software internally and externally. Externally it is using Logic Apps or Power Automate or Power Apps, etc.
With this, the "core" tools we are using are no longer needed in the minds of upper management, which is why I am concerned changing laptops that are fully setup with Intune.
This is also why in my meetings with management they are subtly suggesting software well before we move onto these modern projects - as if I wont understand what they doing.
technically we are still developers but not the way we were originally hired, and I am confused how we are going to hire new staff in this area... and the type of skills we require.
With all the above, I can see them being difficult with Emacs and other software I use.
However, I believe Microsoft Intune is used within the Business to control what software can and cannot be installed. So my guess is Windows won't allow you to install via a typical .exe
I am not suggesting the above is 100% valid. I just don't want to get a new laptop and find out. Maybe I can still use Emacs via WSL... bypassing Intune????
At the end of the day, I understand Security is getting much more serious in recent years - and we even have a dedicated department - but controlling the software to install is crazy, especially for a development team.
I have not updated my laptop (or got a new one) because I am concerned they will not allow me to install or continue to use Emacs. Honestly, I can vision how that conversation goes:-
[manager]: Hi, so what is Emacs
[me]: Emacs is a text editor I use daily and makes me efficient in my work
[manager]: OK. I would like us to start using Visual Studio Code with the new projects coming up
[me]: Why? The consumption models we are using has no VSCode support, anyway.
[manager]: It would just be good if we are all using the same tools
[me]: It should not matter what we use as long as we work with git and deployment. If someone else is great with a different text editor why force them to use something else?
[manager]: (Looks up emacs)
[manager]: I think its best we stopped using it because it is not supported by Microsoft and we need to be careful with the dangers of open source.
[me]: OK. Should we contact other IT departments to replace any open source tools they use?
[manager]: Its just emacs is not verified software for the business. I think you are complicating things a little (tries to belittle me)
[me]: Emacs is my daily driver! If it goes, I will hand in my resignation!
* Manager is not there to understand or reason.. he is just following orders from other IT departments. *
However, and adding to other replies, by SDL I assume you mean the Simple Directmedia Layer?
SDL looks rather strong from my perspective and still my typical goto when having fun making a game. You could argue SDL lost some customers in favour of other libraries like RayLib - or moving away from making things from scratch to Unreal, Unity, etc.
SDL still seems popular - as SDL version 3 was officially released less than a year ago (or it feels like it) However, I guess it depends what you need to do.
Before jQuery, I had vanilla JS code that factored in Safari, Firefox, Opera... and... IE6, IE7, and then IE8 which was (from memory) recent at the time.
Trying to design a visual drag n' drop editing interface on the web was a chore at the time especially with the differences in IE browsers! It was suprising how many customers were still using IE6!
A lot of this is purely by memory, now. I even have shivering memories reminding myself I was using VB.NET with ASP.NET Web forms. I really HATED it!
I remember ASP.NET provided dynamic web pages with things like Placeholder tag, etc. Again, It felt bloated even back then but I made it work. It was a balance of using what was recommended by other developers, and trying to ensure performance is good.
By around end of 2009, I tried jQuery as an experimental branch and very impressed with its capabilities. Despite being a decent Javascript developer at the time I was inexperienced with AJAX (Technically I was a Junior dev in ways) but jQuery shows me the way. It was not long before I ditched certain features of .NET Web Forms for jQuery.
At the time, there may have been a little overhead replacing various javascript code I am written with jQuery but the rewards were high. It was cleaner frontend and backend code, thanks to simple AJAX calls.
Since then I've always had huge respect for jQuery! While I don't consider myself a decent javascript as I don't use it much. However, when I do come back to web development, I cannot be asked with the modern ways. To me it's bloat. I just stick with htmx, now. If I have do some fancy things visually then I will use jQuery.
Don't get me wrong, I am certainly not defending it. I was a little heart broken as I really liked Gnome 2. However, I tried to be optimistic with their plans overall.
(I think the early days on Gnome 3 featured something call Gnome Legacy to keep that Gnome 2-ish feel. I likely stayed on that for a while)
I still use Gnome 3 today... but Xfce would certainly be my second choice.