HNHacker News
TopNewBestAskShowJobs

Roboprog

2,235 karma · joined June 2, 2010

http://roboprogs.com
submissionscomments
Roboprog··on The Great CoffeeScript to Typescript Migration of 2017
Would I be correct in guessing that you are more likely to write an abstract class in the next month than to write a higher order function?

Part of the problem in these discussions is that there are at least 2 populations with vastly different work flows. Which would be less of an issue if I were part of the majority enjoying “mob rule”

Roboprog··on The Great CoffeeScript to Typescript Migration of 2017
https://github.com/DefinitelyTyped/DefinitelyTyped/blob/mast...

“Fun” stuff to read. So if I want to write higher order functions, rather than classes / interfaces, I have to write, and worse, READ, mass boiler plate like the stuff in the link.

This feels like Java 8, to a large extent: you can use code that calls lambdas (e.g. Stream) but you don’t want to have to wade through such HOF code that has the needed cruft to use the callbacks. So in practice, people won’t create higher order functions and the like, as it becomes too much trouble to read and write.

Roboprog··on The boring technology behind a one-person Internet company (2018)
Thanks to the author of this, even if it was put up a while back.

I loved the detail of the business service tools used.

Roboprog··on The Great CoffeeScript to Typescript Migration of 2017
But I don’t write “classes”, and don’t want to be lead down that path.

Allegedly TS has a solution for doing partial function application or currying, such as in the Ramda.js library, but the example that was provided to me a few weeks ago looked every bit as clumsy as the angle bracket stew in Java 8. I don’t remember the details, other than “I hope I never have to read that.”

PFA is like dependency injection for functions, without needing all the “executioner” class trapping nonsense, and with higher order function composition replacing much of the need for subclasses.

I guess deep down in my heart, I know that Typescript is coming to crush any joy out of working with JS. The industry of enterprise design patterns will demand it.

Some of you will understand this, but most will probably just hate on the unenlightened developer who must simply be resisting The Future. A “future” inspired by Simula67, with beans replacing copy books, and IoC provided singletons replacing individual .COB programs. Meh.

P.S. nothing personal. I’m simply terrified of the perception that TS is an unequivocal boon to programming-kind. It’s not, for all of us.

Roboprog··on The Great CoffeeScript to Typescript Migration of 2017
Once you stop making hundreds of classes with globally visible names and members, and start using function scope, functional programming, and mostly short lived value objects, much of the OOP induced pain of programming simply goes away.

Alas, this requires training of the road not taken.

Roboprog··on The Great CoffeeScript to Typescript Migration of 2017
If you are trying to build for a business, or something you yourself will have to maintain for years to come, vanilla JS seems like the way to go.

Perhaps Typescript isn’t a fad to be abandoned, unlike say GWT, CoffeeScript, et al, but why risk it?

Javascript doesn’t feel painful to me like Java does. I don’t have a lot of problems with it that need solving with an alternate front end.

Long live JS!

Roboprog··on Deno 1.0
I would rather have Clojurescript than Typescript, but absolutely, less is more, and it feels like a bad idea to tie implementation of this runtime to another dependency.

My love of the C++, Java, C#, ad nauseum, lineage of Enterprisey OOP languages turned to hate about 15 years ago, though, so take my assessment with a grain of salt.

“C with classes” seemed like a good idea, we were told back in the 80s in school, since garbage collection is impractical. Er, yeah. Worse is better...

Roboprog··on Deno 1.0
Sure do. I wonder if they have a checksum mechanism like browsers do?

You can add an “integrity” attribute to script tags in the browser.

https://developer.mozilla.org/en-US/docs/Web/Security/Subres...

Roboprog··on Driving engineers to an arbitrary date is a value destroying mistake
Sounds like McConnel’s Rapid Development book.
Roboprog··on Ask HN: How to be fluent in functional language speak?
You run the risk of being lynched by the Haskell mob, with talk like that. But I agree, in principle.

The hardcore “sound types” crowd believes that anybody using dynamic types is doomed.

I must not have the same problems they do.

First class functions; closures; higher order functions; partial function application, seasoned with the occasional variadic vs fixed arity function, and I’m good.

One can learn the other 95% of the jargon to deal with 5% of the problems later.

Roboprog··on Maybe visual programming is the answer, maybe not
Thanks. That goes on my to-do list, then.
Roboprog··on Maybe visual programming is the answer, maybe not
I would love to have a tool that would display code as some kind of annotated AST, rather than the layout imposed by most IDEs or tools such as gofmt.

Put a bag over Java’s ugly face, that kind of thing.

I don’t want to look at IntelliJ’s “staircase of doom” formatting, I want to see one parameter per line when there is more than one parameter.

I don’t want to trace down data “COME FROM”s (local variables that are only used once and have to be tracked down from whence they came).

Give me an alternate layout which directly tracks between the text and the diagram, similar to a structure layout, but showing details within functions/methods as a tree, as well. Show me clearly how values/expressions funnel or pipeline into each other, but filter out some of the noise.

And auto-display fuglyCaps names as kebab-case, while we’re at it :-). Cuz, science.

Roboprog··on Agile's early evangelists wouldn't mind watching Agile die
Like measuring nitrogen content as a proxy for protein?
Roboprog··on Things That Turbo Pascal Is Smaller Than (2011)
I learned Pascal before learning C in college back in the 80s. For me, C felt like a step backwards towards assembly language.

Things missing in C: Bounds checking; Non-null references; Subranges; Sets; Nested functions?

Roboprog··on Things That Turbo Pascal Is Smaller Than (2011)
Functions could be parameters in Pascal, but not return values. This allowed closures (mostly) without a garbage collector.

C and its descendants was such a step backwards.

Roboprog··on Nasty macOS flaw is bricking MacBooks: Don't install this update
Thanks. It’s a shame they couldn’t display left and right arrows if you click into the middle of the previously entered text, though.
Roboprog··on The Nucleon, Ford's 1958 nuclear-powered concept car that never was
I was thinking more of the nuclear RV in the book Snowcrash. The world had become anarchy, and the wealthy owner was unconcerned with safety.
Roboprog··on How porting to TypeScript solved our API woes
Yes, implicit currying where supplying the final arg actually calls the underlying function is one kind of partial function application. Ramda is one thing I use.

I also use an in-house library to explicitly apply arguments to return a a new function, which allows you to produce 0 arity or variadic functions.

I’m glad somebody has a work around for using Ramda in TS, but it looks every bit as “fun” as generics in Java, which I think have wasted more of my time than they have ever saved.

Roboprog··on How porting to TypeScript solved our API woes
Great comment. I am part of the minority that is dreading being forced to use Typescript some day, at least until they come up with a solution to annotate partial function application and the like.

TS solves problems I don’t have, and promotes a style I don’t want. I don’t want thousands of global symbols in hundreds of files in my project. At least TS has the decency to infer types in some cases, or at least put the type clutter after an identifier instead of before it, but it’s usually only superfluous clutter to me personally.

I realize that many people like TS. I just hope they understand why some of us are less enthusiastic.

Roboprog··on How porting to TypeScript solved our API woes
That was certainly true in 1990. The use of JITs has changed that to a large extent, as frequently used code paths can be rewritten at runtime in many cases.

Static types tend to push people towards copy-pasta code, as well, which can even work against performance.

Roboprog··on The COBOL Problem
Saving the revision history from the previous source control system would require reading the manual or Google for 20 minutes. I got deadlines!

Of course, if the previous system is a proprietary monstrosity, it may well be next to impossible to recover the history short of writing a script to check out every step along the way and duplicate it in the new system. Ugh.

Anybody who went down the path from RCS - CVS - SVN - Git without saving the check in / commit history is being a bit of a jerk, though.

Roboprog··on The COBOL Problem
I hear that. I worked at a place in the early 90s that had a product to port System/36 based RPG II code onto newer platforms. It kept 4 of us pretty busy, and RPG is just a small language doing flat files on a mini with a simple scripting language (OCL = operation control language) and job queue system.

Later we took on the AS/400 version, but I left before that product went live.

I can’t imagine how much IBM’s mainframe system has sprawled out over the last quarter of a century.

Roboprog··on The COBOL Problem
That certainly helps. Thank God for the “blame”, er, “annotate” command.
Roboprog··on The COBOL Problem
I think it all comes down to having an understanding of your organization’s persistent data.

You need to have a culture where people are allowed to become familiar with what is in their files and databases, and make sure they pass that knowledge on to others. Ideally in writing, but make sure it happens.

Too many developers assign more meaning to this year’s code than is really justified.

Roboprog··on The COBOL Problem
Aside: I have only experienced COBOL code second hand, though I was briefly threatened with it back in ‘88.

I do appreciate how it seems oddly more compact than most “Enterprise!” java code - e.g. copy books vs beans. How many times we gotta name the damn field to use it?

Roboprog··on The COBOL Problem
I got a laugh out of the ad at the bottom of the page: “convert COBOL to Java”.

I mean, it’s the first thing that went through my head when I saw the article, but...

We got off of that 60 year old language, and are no longer beholden to IBM!

... to be on a 30 year old language (that few outside of management love), and owe our souls to Oracle.

Yeah, balancing stability and ease of use is hard. The post-Java landscape is pretty fragmented with many more developer friendly options, but it’s hard to know what will still be well supported in 20 years. I like JavaScript - which is also as old as Java, but seems to have aged better - but I understand that it scares the hell out of many developers.

So what do we replace COBOL with?

Roboprog··on Chrome phasing out support for User-Agent
I log this for coarse statistics about what our user base is running, but that is about it.

The good news: IE use is down over the last year to only about 40%.

The bad news: the growth elsewhere is all Chrome, with less than 1% Firefox or Safari. There’s a tiny sprinkling of Edge, as well, but I forget the numbers on that.

Our users are state and county offices and medical facilities, rather than private individuals, so the users are somewhat captive to whatever their organization mandates.

The only browser detection we do is in client side scripting to detect if the browser can directly display a PDF inline (or not, in the case of IE11)

Roboprog··on Ancestor of animals identified in Australian fossils
For vertebrates, yes. Not all animals

https://en.wikipedia.org/wiki/Protostome

Roboprog··on Researchers say MS Edge's telemetry has worst privacy of any major browser
Or perhaps Brave was supposed to be one of those items?

Clearly, the article needed editorial proof reading in a few spots.

Roboprog··on Researchers say MS Edge's telemetry has worst privacy of any major browser
Centralize on the peer who hosted/called the meeting?
← PreviousPage 3 of 34Next →