Hacker Newsnew | past | comments | ask | show | jobs | submit | blobs's commentslogin

While economy and consumerism are destroying our planet, we are complaining about the UX of an emergency call.. In other news stories I see participants of Extinction Rebellion being arrested by police as if they were criminals, while temperatures world wide are breaking all records and the ramifications are clearly seen almost anywhere on the planet. It just renders me speechless.


An arrest is the act of apprehending a person and taking them into custody, usually because they have been suspected of committing a crime. They are not criminals until they have been found guilty of committing a crime by a court of law. England enjoys due process and a robust judiciary.

Either the police had probable case to make an arrest or the arrestees can sue for false arrest. In general the police do not arrest people without a reason in England.


Can you explain to me how yoga and drum circles in the streets of London helps combat climate change?


Sure as hell beats the alternative of driving to work everyday and eating meat as usual.


> I’m prevented from ever achieving a fluid coding style because the coding is not coming entirely from my head. My coding has become a constant dialog with IntelliSense.

This.

Code should live in your head. You shouldn't need intellisense to see that a property doesn't exist in an object. I hate code completion, most of the time it gets in the way of your thought process. Even if it can gain you a little speed increase, it still is better to write things down for your 'codebase memory'.

That's why I despise the current web development stack. You need Typescript, otherwise you might make a mistake with types? Never had that problem in the past. And just like typo's I make mistakes a once in a while, but that's OK because it helps me to learn the codebase better. You need a linter? Same story, it's always in the way as if it is more capable than me writing code. Prettier? It automatically formats your code, so the codebase doesn't resemble the one in your head anymore.

I know it does work for some people and I can totally imagine that for a beginner developer it can make the difference, but for me it doesn't. In the current/modern web stack I feel like having brick walls everywhere around me and my code is definitely not getting better from it, I'm just constantly struggling with all those 'handy' and 'necessary' tools while my code memory deteriorates. Even worse is that on almost any project I professionally work on requires all those tools, not using them makes me an amateur, even in the eyes of junior dev's.

I believe in writing every character of my code and testing it thoroughly, I wrote many bug free codebases with it, that's my experience.


You shouldn't need intellisense to see that a property doesn't exist in an object.

So what do you do instead? Not just for intellisense but all other possible code completion solutions? Does that mean you always manually open a source file and look for the name of the function/member/whatever you need, then either copy/paste or manually type it? And try to remember all of them to avoid having to do that process again? I've done that from time to time and still do but it's just slower than intellisense and the likes, always.


Clearly, you just memorise / know everything. Jokes aside, there is a balance to be had between having to look up trivial, everyday things via intellisense, and expecting people to know every single method on a massive set of libraries. I'm always surprised by people who claim that the latter approach is a good investment of their time and mental capacity. At some scale, it simply cannot be optimal.


>At some scale, it simply cannot be optimal.

Time spent memorizing APIs is time that could be spent learning new problem solving techniques or interesting algorithms.

These folks have bad opportunity cost assessments. There's always some piece of knowledge more useful for memorization than an API function.


I think one problem is that some of these sorts of things always pop info up at you, instead of you the coder pressing a keystroke to have it help you.

There's 3 different models that happen:

1. Type in the entire thing

2. Type in a unique portion and ask it to autocomplete

3. On each keystroke, evaluate if the list of auto-popped-up completions to see if the one you want is quickly available yet.

Clearly the 3rd is slowest to interact with, and does not convey useful information for familiar interfaces.

If you do not know or cannot remember what the interface looks like, it might be a bit more useful, but gives you similar information as the 2nd above when you have little to autocomplete. But the 2nd option still leaves you in control of the coding flow instead of the system constantly interrupting you to ask you if it knows what you mean yet.


I genuinely cannot tell if this is supposed to be satire or not.


Not satire, just hacker news.


As a sidenote: Did you know about Poe's law? :)

https://en.wikipedia.org/wiki/Poe%27s_law


> I can totally imagine that for a beginner developer it can make the difference... I believe in writing every character of my code and testing it thoroughly, I wrote many bug free codebases with it, that's my experience.

I'm entirely split between vigorous agreement and shaking my head.

At some point I just lost interest in committing various interfaces to working memory. The more trivial the more virulent my disinterest. Web stuff, especially front end? Unless it's crucial UX for something Very Important, it's just not worth the effort. Bring on the program synthesizers, even if they're limited to tab completing. I would literally rather memorize gibberish. If I wanted to memorize things I don't actually need to, I would've gone to med school.

At the same time, for code that actually matters and requires deep thought, I type every character and think about each one a lot.

Hopefully at some point program synthesis will be good enough that we don't have to make this choice. In the meantime, pretty much everyone doing something other than code-for-the-sake-of-code is writing some software where understanding every character really matters and some software that just needs to do the dumb thing right more than half the time to be worth it.

> It automatically formats your code, so the codebase doesn't resemble the one in your head anymore.

Same thing. One the one hand, your coworkers are not your psychologists. On the other hand, who is going to explain the code if you can't? And again, the resolution is: does this code being correct really matter?


I had the same reaction as you, for the same reasons. That said, I'm a bit more skeptical about the proliferation of automated code formatters run e.g. as pre-commit hooks. A project-wide consistent formatting style is the right thing to have in 90% of the cases, but neither the style guides nor the tools enforcing them are perfect. There are situations where a particular piece of code will suffer a readability penalty if formatted in a standard way. For those situations, the formatter must have a way to locally disable it.


> You shouldn't need intellisense to see that a property doesn't exist in an object.

I think, this is simply not possible nowadays in any professional environment, involving multiple players.

There are way too many frameworks within which you have to find your way relatively quickly and nevertheless often only for a short time. Many with idiosyncrasies, sub-par design, the wrong smell or simply not satisfying the own taste one way or another.

With C++ almost my first language, I was using Qt for many years. It was almost the only framework fitting expectations more or less intuitively the whole time (at this moment, PyTorch fits a similar spot). This specific example hasn't to be true for everyone, of course. But there are always things on the other hand of the spectrum, for which I immediately forget syntactical peculiarities again and again. There seems some inner resistance, accelerating this for some software artefacts. I have seen this this seemingly feeble aesthetic point with many - often very good - programmers, maintaining a strong inner image of the software they are responsible for.


> You shouldn't need intellisense to see that a property doesn't exist in an object.

I use code completion for exploratory programming all the time. Questions like "can I convert this to a string" become easy. My coding is much more fluid because of it - it's a dialog with an assistant - "help me with telling what you can do" - rather than me writing overly specific orders to a machine.


I think if I want to solve a problem, intellisense already became a requirement for me, since it does increase speed and I would say that this helps "fluidity".

I see some other side effects though and that regards labeling. I spend much less time on thinking about fitting ones since they would be auto-completed on later use anyway. If I don't have intellisense available I spend more time on thinking about names just because I need to remember them. That makes the code much more readable in some cases.

Exploring APIs can be much more enjoyable if you have it and there is no thorough documentation available on the other hand.

Still, some projects have a lot of constants and variables, so in that case it really helps.


> You need Typescript, otherwise you might make a mistake with types? Never had that problem in the past

Project size metrics needed.


> Code should live in your head. You shouldn't need intellisense to see that a property doesn't exist in an object.

That may be well and good for you, but not everyone's brain works like that. My brain is more GPU than CPU: I don't deal well with holding lots of disparate pieces of information in working memory, but I can quickly look at a problem and see many solutions as routes of data through black boxes, and determine what pipes need to plumb to where.

Why should I waste time and neural cycles on code "living" (e.g. interpreting state) in my head, when I have a perfectly good "head" for it right in front of me? Types? Linter? Formatting? That's wasted focus that could be going towards cybernetics, architecture, API ergonomics, and performance.

Before IDEs, I had a tight loop of write code, run it in repl, squash bugs, repeat. Productivity skyrocketed once I started using Spyder/codeblocks, then once again in Pycharm/Clion, and then once again when I started using type hints in python. I just started using TabNine and it's like finally I feel like my code can keep up with my brain.

Www.tabnine.com


> Even if it can gain you a little speed increase, it still is better to write things down for your 'codebase memory'.

> [...] You need Typescript, otherwise you might make a mistake with types?

You can use your 'codebase memory' instead.


Intellisense allows me to write code without having to check definitions of types that I'm using.

e.g I'm using type<Person> and I can just check list of its properties at current place instead of having to go to the definition

same with liberaries, despite that it may not be the smartest thing to do (you should check docs) it works fine very often


>I wrote many bug free codebases with it, that's my experience.

Prove it. You seem to be claiming to be qualitatively superior to most developers, since most developers use an IDE or tool of some sort, so let's see an example of this nontrivial bug free code you've written.


Especially the tests should prove it. In almost none of the comments I see thorough testing is taken into consideration. No IDE can replace good tests today AFAIK.


Without types you need more tests to have confidence though.


That's as easy to prove as that there isn't an invisible, indetectable pink unicorn standing right behind you as you read this.


I'm as confident that there isn't an invisible, indetectable pink unicorn standing behind me as I am that someone has written multiple complex and bug-free applications working only from their memory of a language and codebase. Not even Don Knuth is that much of a savant.

At the very least, the quality of such code should be self-evident and instructive.


As you gain more experience in software development, you'll look back at this post and laugh.


You must work on really simple projects


I assume the amount of HN articles per day has increased over the years since 2007 along with the growth of HN popularity. So, when I see a trend in some subject would it take that into account? Otherwise it could easily not be a trend but an increased amount of HN users.

Just curious before I get excited.


Yeah, peaks in story count nowadays are relatively smaller than peaks from 2007-2009ish. You can use the "Display as % of stories" button which is right of the "Group data by" drop-down to show the data as a % of daily/weekly/monthly stories posted to the site.


Great question. I've had an issue with this with a tool I built myself. I hope it takes it into account!

Edit: Just noticed this in a blog post from the creator:

> Since there are more posts per-day nowadays it's also useful to look at the count as a percentage of all posts in the period.


Whatever words you use, it simply conflicts with basic JS and is a serious flaw.

  const cat = new Cat();
  if (cat instanceof Dog) console.log('this should never be possible!');

What is this strange protective behavior towards TS, can we stick to logic please?


instanceof checks the prototype chain, which is a different concept from type. Prototype chains are dynamic and exist at runtime, while Typescript types are a static concept.


> TypeScript crew have managed to build something that can get traction where other efforts have not.

You mean Microsoft managed to get traction? It seems most TS proponents don't realize TS is a success because they fell for smart marketing and serious money behind the project, not because it's a better language than 'other efforts' like for example Purescript or Dart.

But every comment I make against TS seems futile. TS proponents defend their little language very fiercely regardless of all the flaws it has. It's almost worth a study how Microsoft managed to do that. Overall a real pity, because there are so many better options and ideas for those who want static typing. TS is actually the worse choice IMAO.


>It's almost worth a study how Microsoft managed to do that.

It's almost as if Microsoft learned the techniques of linguistic evangelism from Sun when they studied the ideas behind Java to design C#, but they left out the anti-linguistic-miscegenation Java-supremacist ideals of "100% Pure Java [TM]" when they made it easy to integrate other mongrel languages with COM and P/Invoke.

https://news.ycombinator.com/item?id=19571635


They did it by solving a great pain of a very large amount of people. Not many of these people would have been able to use Dart or PureScript.


Typescript unlike Dart, Purescript, Fable and BuckleScript is a superset of JavaScript so you don’t have to change anything in your existing JavaScript project to start using Typescript. Also JavaScript interop is a breeze and a huge percentage of the libraries have already typescript binding and it’s a huge advantage compared to using the aforementioned languages.


Because the UX suffers from UI design that is driven by marketing. UI design should be driven by a passion to create the best UX, but that's almost impossible in this $$$ world..


2 things come to mind here:

A leopard cannot change its spots.

Confidence comes on foot but goes on horseback

I moved to FF + Duckduckgo engine a while ago, it will be extremely hard for them to win me back.


I moved back to linux (fedora) a while ago, what a relief and what a joy it is compared to Windows.

I use Firefox with duckduckgo search engine, no pages full of ad results like with google nowadays. I cannot think of 1 single reason to install Windows 10 and use Chrome browser, you just bite yourself with that choice.


The primary reason I boot into Windows is to play videogames, especially VR, which just isn't stable on Linux yet. But that's not a bad compromise either; my Windows boot is for companies that are happy to sneak rootkits onto the OS to detect cheaters, and honestly I'm totally okay declaring my Windows partition unsafe, and booting back to a sane OS to do real work.

It's really a shame, because the core OS underneath Windows 10 is fairly solid. It's specifically the user interface and Microsoft's behavior around telemetry and advertising their own products at the expense of the end user that turns me off Windows as a platform. Like, I feel like if they focused on making Windows a solid and boring OS that was so stable and reliable that no other choice made sense, their overall brand image would improve so much. Experiment elsewhere, the OS is not the place to tarnish your users' good will.


Problem? There is a solution though: https://www.sulapac.com/


> Without ego humanity may not have made it this far.

This far? You mean on the road to our complete extinction due to our incomparable stupidity? I sometimes feel truly ashamed to be a human. It's the ego that ruins it all, we could have been so much further. People should learn to be more humble and reject the desire for authority.


> People should learn to be more humble and reject the desire for authority.

Authoritarianism is a horrible force in the world. But it does not mean that ego does not exist, even in fighting against authority. Ego tells you to fight.

One needs an ego to know that authoritarians should be pushed back, walls should be torn down not constructed.

Awareness of ego is the first step in rejecting authority telling you what to do. Authoritarians have their ego tightly coupled to self, and don't realize it is an abstraction of self.

Authority should always be questioned and never trusted because the world operates on self-interest, that is the nature of the game.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: