Hacker News new | past | comments | ask | show | jobs | submit login

> - tons of janky-ass software from S1, like "Simax", which is written in a proprietary Lisp-ish(?) that uses ActiveX to run in an IE9-10-11 window and that re-invents window management and basic form controls, was never fully localized into English (so you're clicking buttons with terse messages in Hangul that still don't make sense even if understanding the language is no problem), and times out and ends your session if you look away from it for 10 minutes

I've always been surprised when I see things like this, from websites with all the controls reinvented to MDI-based Windows apps. Where do they get the _time_ and designer resources to waste all their time doing this?

Maybe I just learned programming in a different way, since one of the first things I learned was "laziness is a virtue".




These browser apps are relatively common inside Korean companies. The IE base dates to the pre-crypto-export days, when the Korean government mandated crypto be provided as an ActiveX module. This requires specialized secure input forms within the browser and within-browser error popups, so why not build a within-browser windowing system...

As a user, interfacing with these systems was always hell. Setting up online banking on a new computer would take the better part of a day, and would fail if you didn't have IE security exceptions set, if you were missing Korean font packs, or if your name was too long. And different ActiveX controls installs were required by every webapp. Our company (healthcare) finally rolled out a native Windows app in 2019. It includes its own floating tile manager, and for tasks like viewing PDFs, browser frames are now embedded in a tile...


I don't know the lineage of this particular system. But I have worked on janky systems in the past. In one instance, an intern built a language during a summer project. It was an expedient solution to a problem that a team was having, so they began using it. Then they put work into making it faster and integrating it to other systems. Eventually they wrapped a service interface around it and reexported it to other teams. But there were serious semantic problems with the language as a concept and with the technical implementation of the language. Once it had users who came to depend on its bugs, it became very hard to fix, and the whole mess became more convoluted as people tried to build sensible extensions on the rotten core.

It's finally gotten to the point where there is the action potential to fix it in my case, but for a lot of systems with a complex and expedient lineage like this, it never gets there. So garden well, I guess, is the takeaway.


Almost every instance of this I've come across can be described by repeated localized, short-term optimization.

No one ever sat down and said "How can I design a terrible system that's a pain in the ass to work with and unable to be extended?"

Everyone sat down and said "How can I make that one thing that's actually my job faster?"


sometimes people also sit down and ask "how can I build a platform to do this kind of thing so expanding and maintaining that platform can be my new job here?"


Sometimes that's the end result, but I'd question if that's frequently the actual goal.

Never ascribe to malice, that which can be described by laziness, etc.

It seems like it would take more work to specifically design a system to ensure job security than to just haphazardly design without coherent architecture, and consequently be the only one who understands it.




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

Search: