Any advice (technical or life) for us younger people?
Any advice (technical or life) for us younger people?
Any meaningful milestones along the way, that you think are worth noting. Tasks or roles that indicate progress?
I'm not so sure about that (but I'm pretty green on bioinformatics). I mean, for one: https://xkcd.com/1605/. For two, if that was the case we wouldn't need projects like folding@home and such to tell us what the structures described by DNA actually look like. And for three, there is a massive amount of influence on brain development from elsewhere (both from within the fetal body and from the womb). It's a bit like having a compiler's source code but nothing to bootstrap it with...
Maybe I'm biased? PHP paid my bills for a long time and currently I'm a front-end developer that works mostly with Angular (but sometimes I jump into the .NET Core backends). I love JS and TS, they evolved nicely along the years.
Nothing against being a fanboy for one specific lang, but thinking "X" language is bad/joke/nightmare isn't nice and makes people that work with them look like losers, which they aren't.
To make a JS package consumable by a reasonably strict TS project, someone has to basically rewrite the package. It's less effort than writing one from scratch, but it's not free.
I’m not sure what you mean by “strict” here... Certainly one can use JavaScript from TypeScript, and even provide type information for the JS with declaration files. [1] Does a “strict” project require something beyond this?
[1] “Declaration Files”, TypeScript Handbook https://www.typescriptlang.org/docs/handbook/declaration-fil...
Adding the actually correct and reliable types is the hard part. (But easier than writing the code in the first place.)
'1'+1=2 prevents a lot of errors. The languages tries to help you along compared to an harsh error. Maybe you want a harsh error.. halting everything until you declare a new variable with the same type and have to go through a manual conversion. For me let the language handle that. If you are tdding anything unexpected will be caught anyhow if you are worried how things convert.
It's like rust in terms of memory management vs c. It handles it for you..
* safe/unsafe
* strong/weak
* static/dynamic
Note that while safe/unsafe is basically all-or-nothing, strong/weak and static/dynamic are more of a spectrum, so JavaScript would be safe, weaker, and more dynamic than other languages. Typescript makes JS stronger when authoring code.Still, this is unforgivable in my book:
[] + {} == "[object Object]"
{} + [] == 0 Array.prototype.toString = function () {
return '[' + this.join(', ') + ']';
};
It would be convenient if Object.prototype.toString by default threw an exception, since the default breaks the embedding rule I described.The second example is misleading, and it has nothing to do with the rules for addition: the {} at the beginning of the expression is parsed as a code block, played off the rules for what the value of a Javascript statement is. More realistically, we have
({}) + [] == "[object Object]"
but the original is, effectively, {
}
console.log(+[]);I worked with PHP professionally for some 10 years, with very competent colleagues from whom I've learned a lot. The PHP ecosystem with Composer and Symfony components is quite good. Still, PHP itself is a terrible language. I have less knowledge but a similar opinion of JavaScript. Doesn't mean people working with PHP or JavaScript are losers - I admire their tenacity and do feel a little bad for them.
Is COBOL terrible or C Or Go?
> Terrible compared to what?
Terrible compared to other available programming languages.
> What do you find a better language?
Lisps, Haskell, Erlang, Rust, but even eg Python, Ruby, C, Java.
> What makes a language terrible for you?
Allowing me to do unreasonable things and resulting in unreasonable behaviour. Eg JavaScript:
[] + {} == [object Object]
{} + [] == 0
> Is COBOL terrible or C Or Go?
Programming languages are products of their time and context.
When COBOL was created, it might've been the best there was. By now, I think COBOL can be considered worse than many alternatives. If someone decided to write a non-toy greenfield project in COBOL today, I'd be surprised and might question their sanity.
C has two things going for it: it's a simple language and it's close to the hardware. I wouldn't call it terrible.
Go, now I really dislike Go, but I think there might be situations where it's the right tool for the job. Simple web services perhaps?
PHP was terrible already when it was created. I don't hold that against Rasmus, he just wanted to get simple things done, and didn't even intend to create a full-fledged programming language.
JavaScript... Brendan Eich wanted to put Scheme scripting in the browser, but because Java was popular, he was told by management to make it look more like Java and also to call it JavaScript. Oh also he had like a two week deadline or something.
Yea, I dunno... good hard questions :)
I don't particularly care about php because I have basically zero experience with it.