English but not in a Brexit way.
I’m not too familiar with how Flatpak works but Emacs benefits from compiling it on your machine natively. Tell me what distro you’re on and I can see if I can find out how you’d do that.
Lots of replies mentioning Emacs but Emacs out of the box is gonna be essentially a text editor (insert obligatory: Emacs isn’t a text editor; it’s a LISP interpreter).
However, install Doom Emacs, and you have a full IDE experience for essentially any language you could ask for. I highly recommend it.
My answer to this would always have been Metal Gear Solid 3. If Konami mess up the remaster (which I’m just assuming they will), then this will be my answer again.
Hijacking your comment to plug my favourite game review channel who made a video on Vagrant Story.
This Must Be The Place (Naïve Melody) may well be my favourite love song of all time.
Motorsport Manager. Incited a hyperfocus in me a lot like Paradox games always have.
You’re absolutely correct and if there’s one thing I wish I included it would’ve been a ‘charitable’ description of the possibilities of Brexit. The reason why it wasn’t included is that I think the actual motivations of the arch-Brexiteers within parliament and the media aren’t a contributing factor to why Brexit happened. They certainly had a vision for a potential Brexit but I don’t think that played any role in the decision to hold a referendum, and I believe only a very small subset of the 52% voted Leave did so because they shared the ‘Singapore with worse weather’ vision of the Brexit elite.
Wow, thank you :) that’s an amazing compliment. Brexit has the dangerous combination of tremendous emotional investment and piquing my interest in domestic politics. Hence the rant 😂
OK, so…
The reason why it happened is that the Conservative Party government was wildly unpopular in 2013-2014 with all of the indications being that Ed Miliband’s Labour Party were going to storm the Conservatives at the 2015 General Election. Furthermore, ever since the Thatcher governments of the 1980s, the Conservatives were weakened by the ‘Eurosceptic’ branch of their party often being vocal, disruptive, difficult to work with, and harming the ‘Not the Nasty Party’ narrative Conservative Party Central HQ (CCHQ) had often tried to push in the 90s and the 00s.
Offering a referendum on the European Union therefore had two advantages:
This is of course on the assumption that the referendum passed. And never let anyone tell you otherwise, David Cameron (then-PM) and George Osbourne (then-Chancellor; finance secretary and 2nd most important cabinet member) absolutely would not have proposed the referendum if they believed it had any chance of failing.
Furthermore, they assumed they’d be out of government and the referendum would never see the light of day. To the arrogant, and out-of-touch Cameron and Osbourne the policy was all upside.
As it happens, for a variety of reasons, the Conservatives actually won the 2015 General Election with a majority (whereas they were in a coalition before). And, as promised, a referendum was planned.
For a substantial period of time (late 18th-century to mid-20th century), Britain was unquestionably the most powerful empire in the world. This is within living memory. The culture and expectation of Britain being a 1st rate world power is something that has only begun to fade within the past couple of generations. But a significant number of older people (people who vote) were raised and educated with the fair understanding that Britain was a superpower. For example, all of my grandparents and most of great Uncles and Aunts were being educated at a time when Britain still held all of India and most of Africa.
Since the Second World War, Britain’s place in the world has unquestionably declined. We no longer have the Empire. We racked up tremendous amounts of debt to the United States. For periods in the 1970s, Britain was widely considered the ‘sick man’ of Europe. The feel good moments of the 1990s and Cool Britannia were quickly doused by the War in Iraq, where Tony Blair was universally seen as a puppet of the Bush administration.
Since the 1980s in-particular, life has changed for many in the United Kingdom beyond recognition. Trade unions were razed. Income disparity has skyrocketed. Town centres have become neglected. Internal tourism has been decimated. Cities like Leicester started becoming majority-minority. 2008 and the Great Recession tumbled the New Labour government and brought in a Conservative government. All parties at the 2010 general election bought into the consensus that the only way the country would survive would be to gut public sector spending. Healthcare would worsen. Education would worsen. Adult social care would worsen. Local government services would worsen.
A very large number of people came to the rational conclusion that, at least for them, their lives had gotten worse and would continue to get worse. But how does one consolidate this very clear observation with:
A lot of the media attempted to bridge this issue with a scapegoat: the European Union.
Euroscepticism first found a voice with Margaret Thatcher in the 1980s. She often disagreed with a significant number of the leaders on the continent and didn’t appreciate being limited in how she could act.
Thoughout the 1990s and the 2000s, the whole media knew they could gather attention by blaming various problems on the European Union. A notable young journalist, Boris Johnson, was particularly renowned for the ludicrous and inaccurate stories he wrote on European Union directives.
The European Union was an outstanding scapegoat:
It had something for everyone. Before the result of the referendum, you’d never hear anyone defend the EU. It was seen by most of its defenders as a necessary evil in a world we could no longer rule, and isn’t it nice you don’t need a visa to go to Spain? No positive case was ever put forward by anyone. There was little point to. There was never any risk of us leaving.
Now, the European Union is an imperfect project. However, thanks to the economic and cultural connections brought about by the EU, Western Europe is at the lowest risk of internal armed conflict in millennia of history. Europeans are more familiar with one another than they’ve ever been before. Smaller states such as Ireland remain independent and sovereign but now have defenders, and allies, and representatives that allow them to assert themselves globally.
These arguments hold much less weight on an island nation, that hasn’t known armed conflict within its borders since the Glorious Revolution (excluding Ireland), who within living memory had the power and the influence to dominate half the globe.
No one appreciated the EU until it was already too late. And all of the rich newspaper editors who made bank on peddling lies about this foreign government to a lost, and disaffected public thought it’d be consequence free.
What was it supposed to accomplish? Nothing. The referendum was never supposed to happen, and if it did, it was never meant to pass. No one with any power or influence had any idea on what to do. What Brexit would look like. What some fringe politicians had promised was an emotional return to self-government, wealth, power, influence, independence. A turning back of the clock.
I had a little personal crisis when I watched The Big Lebowski for the first time and just hated it. I was so bored.
I’ll have to give it another go and hope I get it .
Season 3 of The Wire. That’s pretty good hype music but I’d probably rather the Season 2 cover.
The pricing Reddit is charging is obscene and would mean that Apollo would be forced to pay $20 million per year to keep the app running. Other popular third-party apps would have to pay similarly outrageous costs. It’s clearly a blatant attempt to run them off Reddit so the site can force users to use its first-party app instead.
I wish all articles covering the debacle but it at clearly as this.
Thank you for taking the time to read my response. I really appreciate having the approval of someone with decades of experience (which, I very much don’t). Out of curiosity, when you started programming would have been the early days of Java, C++ etc. and the start of the ‘OOP revolution’. Can you recall why you started with C, when OOP was very much en vogue?
The entirety of your first paragraph is a humongous red flag. Your rationale makes sense, and it appears at each stage of the process you made logical decisions but the end result is disaster. You are evidently a knowledgeable and intelligent person, so I’ll ask you now to consider how old the underlying technologies on the web are, and how the web looked when they were written. Web frameworks exist to bridge the gap between languages and methods that are popular in the present day and the arcane mysteries of the world wide web. They bridge this gap with magic.
Now, this magic is a wonderful thing. It enables developers to make applications for the web in a way they’re familiar with and saves them having to think about the ‘web’ part which is:
However, if you’re trying to ‘learn programming’, starting with web dev is backwards in my opinion. You either choose to use a framework, and then you’re not really learning programming: you’re learning the framework. I always find this unrewarding, as it feels like the framework is doing all of the work and robbing me of the satisfaction. Furthermore, when you’re in the ‘beginner mindset’, you want to know how things work, you want to understand, you want to learn. Web frameworks are powerful when you focus on the ‘what’ and less on the ‘how’. Experienced developers have an understanding of ‘OK, this is what the framework abstracts for me, I’ll let it do its job and I’ll do mine’ and ‘Oh, I am not sure about this and it’s important I learn’. This is obviously a skill only gained by experience.
Furthermore, as you touched on, web frameworks go in-and-out of fashion and can have radically different approaches. With professional experience, you can apply your knowledge of one framework to learning another. As a beginner, I do not believe you have a broad enough understanding to be able to make connections between frameworks. This leads to your feeling of always being on the back-foot.
My recommendation for anyone who wants to learn programming in-and-of-itself, rather than to a specific end, is to start low-level. C was my traditional recommendation, though I may be altering this to Rust. C will never let you forget that you are programming a computer. This might sound ridiculous but it’s remarkably easy to lose track of and once you do, everything (in my head, at least) can get a bit esoteric and conceptual, and I find the ‘grounding’ deepens my sense of satisfaction working with computers.
My diagnosis as it stands is that you attempted to work from ‘abstract’ (web frameworks) to ‘concrete’ (learning how to program) and I’d always advise the reverse. Use C to gain a clear appreciation for how a programming language is altering 1s and 0s on your machine. Then build up with other abstractions, languages, and, in due time, frameworks.
It sounds to me that, in your experience, you made some correct assumptions and some very incorrect assumptions. Correctly, you identified that structure, ease-of-understanding, and writing your code in a style that you’re comfortable with is optimal. Incorrectly, you assume:
Now, these aren’t merely incorrect assumptions, they’re incredibly incorrect. In the professional sphere, those who write code that is well-structured, easy-to-reason about, and is well documented are sparse but they are often highly valued (in good teams, at least). I was always taught, and still vehemently believe, that clarity and readability are absolutely the first priority. Speed of execution is a secondary concern. Terseness is not even a concern of mine at all.
Good code is easily understood by computers, as well as human beings. You are the first human being who has to understand your code. You should always write it in the way that is most easy for you to understand. It is a darn sight easier to optimise neat code, than it is to neaten optimised code.
I believe you’ve come to these conclusions because of your experience learning web development. I find web frameworks and JavaScript as a language to have syntax that is odd and inflexible. The pseudo-code you provided was in JavaScript and is reminiscent of many of the traits that mean that even experienced developers such as myself find it difficult to parse. There’s a reason callback hell is a meme. If you get the opportunity to use some other languages, I believe you’ll see there’s more flexibility in expressing yourself than maybe you’ve had the opportunity thus far.
Furthermore, I am reticent to comment on what is valued in the JS community, as I have never written anything of note with the language but looking at the two code snippets you provided, the first snippet smacks more of a ‘professional’ developer. It’s more modular, finely-grained, expressive.
Finally, if you’re still clinging onto the notion that coding demands a ‘particular’ way of thinking, I encourage you to look-up internet rants from people who know a lot about Java, Python, C++ etc. bashing Haskell. Haskell is a beautiful language that forces its developers to write in a style known as ‘functional programming’. I won’t go into depth about the differences and why functional programming is amazing but let’s put it this way:
How far do you believe you could get in JavaScript without:
- Being able to loop?
- Being able to re-assign variables?
In Haskell, you cannot do either of these things and it’s for the better.
I’m glad to hear you’re happy in your work but disappointed that you were unable to find a groove with programming. From what I’ve read, you absolutely seem to be the kind of thoughtful individual who should enjoy it.
I’d encourage you to start learning Rust. I am learning Rust at the moment myself. Pay close attention to references and memory management. When your material discusses memory concepts, such as the heap and the stack, ensure you develop an intuitive understanding of how they work. Don’t just view this as an important part of your development (one many developers neglect!) but as a window into what is happening on your machine. If your brain is anything like mine (and I think it might be), it’ll further your satisfaction.
Avoid Python. Python is tremendous is you want to use a tool that mandates Python. It will hinder your learning and force you into bad habits if you learn it early. Furthermore, when your project gets to any level of complexity, it’s going to be far more pain than its worth. I understand why Python is so popular in some non-programming domains but it has no appeal to me as anything more than a scripting language with boundless 3rd party libraries.
Look at functional programming, if you’re curious. This free book on Haskell is popular for a reason. Functional programming ideas are slowly making their way into all mainstream languages, for a very good reason. They force you to think differently, and it might be different in a way you prefer.
Thank you for taking the time to offer a different opinion to the prevailing sentiment. I am certainly in your camp of being wary of interpreted languages.
Thank you so much. This is a terrific insight. A little later I’m going to sit down at my PC and type something up I think will help.
I’d ask you as a fellow ADHDer ✊ if I forget to please remind me to write up my response 😂
EDIT: Response now posted here
Have to admit I have more good experiences with .gov.uk portals than bad. Hope we can continue to streamline more government services online. I’ll say a little thanks to PHP + Laravel whenever a .gov.uk service works for me again.
Thank you for the detailed response and don’t worry: you don’t have to pull punches on Python on my account 😂 I’m a former Django dev and I have no intention of working with Python ever again. I see why it’s so popular for data analysis etc.: it’s a phenomenal language for non-programmers.
May I ask you more about your experience attempting to learn? I don’t know if it’s because I can program but eight years seems a long time. In return, I’d be happy to offer you a few pieces for advice that could help?
Following up from my previous comment, there is a Flatpak of Emacs available on Flathub. Here are the instructions for how to install, whilst enabling native compilation, which will offer a performance increase and allow you to use features such as
vterm
(the best terminal emulator for Emacs).