Ask YC: What are you working on these days? - raw-- What are you working on these days?<p>I just met my co-founder, and we are working out the concept for this product idea I've had for a while, to help with email overload. Lots of fun! <comment><AUTHOR> * Still trying to improve the <http://mediawombat.com> crawler

* Working on better pre-caching scripts/SQL for <http://mediawombat.com> search results

* Working on how to charge a company that wants to use the <http://mediawombat.com> API

* Coming up with ideas for a back-end for a new auction-based concept that my friend and co-founder has come up with

* Coming up with ideas for mixing/matching data when Google releases their RSS feeds for google searches

* Trying to master CSS and transparency to make pretty boxes and stuff. I'm not very artistic. :)

* Writing a play-by-email and play-by-web strategy game

* Coming up with a way to keep a linux configuration on my laptop so when I do a fresh-install of Fedora 10 next month, I don't have to re-create all of my custom configurations from scratch (again)

* Thinking of cool ways to use the WiiMote

* Setting up my father's website (has an idea about improving K-12 education)

* Keeping my older kid from injuring my younger kid

* Keeping the wife happy

* oh, and my actual paying day job :)

<comment><USER2> Dude what's your website? You should include a link to it so we know what it is :^).

</comment></comment><comment><USER3> I'm working on an open platform for cloud storage. Imagine something like MobileMe, Microsoft Strata, or Carbonite, but without your data being trapped by a single vendor.

At the moment we are considering Celeste as the basis for this platform. <http://www.opensolaris.org/os/project/celeste/>

I've got the partner (alexkravets), now we're looking for funding to mitigate the risk of having no day job.

We don't have a write-up online at the moment, but we firmly believe in the "ideas are cheap; execution is everything" philosophy, so we'll answer any questions.

<comment><USER4> Question: how do you plan on making things sync as effortlessly as they do on MobileMe? I'm sure it can be done - look at Dropbox - but do you have any ideas on how to beat something that's built in to the system?

<comment><USER3> Initially we'll side-step that issue.

First we'll build the equivalent of an online mountable disk so it'll be a natural fit for online storage/backup and sharing.

Building applications on top of this storage layer such as photo sharing and syncing will be next.

As for how to compete, the magic sauce is openness on two fronts. Bandwidth and storage are commodities, and we want this storage tier to be a commodity marketplace as well. The storage providers will compete for end users while cooperating to store and serve up data. A user can switch providers and retain the same data in the system (cloud).

Along with an "open" system, most (if not all) of the software will be open source. We envision a small hub of centralized services (identity and such), a storage provider ring, and the end users.

So basically we'll beat the big guys by creating an open system with open software. Our company, then, will be taking a small slice of a big pie, rather than on these players head-on.

<comment><USER4> _Our company, then, will be taking a small slice of a big pie, rather than on these players head-on._

Very nice way of thinking about it. Good luck.

</comment></comment></comment></comment><comment><USER5> * Working on my second book for O'Reilly

* Speaking about, and generally pushing for more interest in Open Data

* Putting my entire life in a semantic graph: <http://blog.kiwitobes.com/?p=73>

* Trying to figure out what programmers can do about risk management failures

<comment><USER6> Working on my first book for O'Reilly

<comment><USER7> What about?

<comment><USER6> It's a travel guide for people who love science and technology. It contains 128 places where you can see really great bits of science or technology history, and it explains the science behind the place.

<comment><USER7> Sounds neat! I'll look for it.

</comment></comment></comment></comment></comment><comment><USER8> Unfortunately I don't have the time to do anything too crazy but here's what I currently got going:

\- Just about finished a small 2 week project that will allow indie game developers a place to host their games, upload media, and give status updates. Been done before (Infact, I made one of first incarnations the style of service about 6 years ago) but I need something to do with my www.gamecake.net domain and this was a fun way to learn more about django and give a little back to the community I no longer belong to due to time restraints.

\- Starting up a video cooking blog. My side passion is cooking and I would like to create videos of my recipes. I'm celiac/dairy-free so I have a niche to focus on. I've got a good camera now, and will probably shoot my first real episode this week now that I have some recipes nailed down strong.

Not looking to make money on either of these, just for fun and learning. Plus they look good on a resume in my opinion.

</comment><comment><USER9> Working on a place for hackers and artists to find short gigs: <http://gigbayes.nfshost.com>.

I aggregate all the gigs sites I can find e.g., craigslist (all of them), sitepoint, elance, etc, and then use Bayesian filtering to bring the most relevant gigs for you to the top.

</comment><comment><USER10> Making online customer support easy with Candlelight -- <http://www.candlelightapp.com>

I've been working on it nights and weekends. Great respite from some of the less than pleasant activities of coding at my day job.

<comment><USER11> sounds interesting and probably something I could use since I plan to offer email-only support at first for my online storefront product.

i'll be keeping tabs on you guys. :-)

</comment></comment><comment><USER12> <http://theperceptron.com> \- astute music recommendations

And a site where you create your audio autobiography by uploading mp3s. Hello, RIAA.

<comment><USER13> I got: Radiohead -> The Beach Boys

You should remove that my any means necessary.

I think the UI is pretty nice, actually. Very functional, feels like a "tool". Don't lose that when you make it more fancy.

<comment><USER14> I would disagree, Pet Sounds is one of the greatest, earliest experimental pop albums ever.

</comment></comment></comment><comment><USER11> I've been working on an online storefront product that should serve as a great starting point for web developers that need to roll some custom functionality for clients. All text can be multi-lingual, support for complex product options and pricing, multiple storefronts using the same code, and more. nothing to show yet, but more info here <http://greaterscope.com>

<comment><USER9> How will you find the customers for it?

<comment><USER11> A friend of mine runs <http://www.udm4.com> and we've talked about running an ad on there since its primary audience is developers (nevermind the fact that I don't really like the menu). Other than that, try to partner with good development shops that do online stores ... I have a few in mind.

Any other ideas, besides taking out the obvious ad on google? I really don't want to screw with trying to get high keyword ranking via the SEO black-magic route.

</comment></comment></comment><comment><USER15> Great question :)

Mostly working on Stitcho.com (<http://stitcho.com>)

Stitcho is a desktop notification widget for your website, with support for Windows and Mac. Add desktop alerts to your web app in less than 30 minutes.

Also, trying to build an Erlang community in the DC area (search for Erlang on meetup.com)

Finally, putting together a presentation for BarCampDC this Saturday.

<comment><USER16> We've been doing something like this with Growl - how does it compare?

<comment><USER15> Stitcho is basically "Growl for the Web", but NOT in the sense of being another Javascript-to-Growl bridge (a few of those exist out there, protoGrowl, Growl mootools, etc.)

Rather, Stitcho lets you send notifications from server side code that are delivered to your users via the Stitcho widget. The Stitcho server sits in the middle to route and deliver the notifications.

Also, Stitcho provides widgets for Mac and Windows. (The Mac version can use Growl if it's available.)

Does that answer your question? If not, please clarify.

<comment><USER17> Any plans for a Linux Gtk/Qt client?

</comment></comment></comment></comment><comment><USER18> * look.fo (<http://look.fo>) / str8.to (<http://str8.to>) - a sort of insta-tinyurl that uses Google search results to create on the fly links. For example, see <http://look.fo/hacker-news> and <http://str8.to/hacker-news>).

Q: Isn't this just a shortcut for (<http://www.google.com/search?q=hacker+news>)?

A: Absolutely, but the shortcut makes it viable to create on-the-fly links to search results (or use str8.to's I'm Feeling Lucky option) in IM conversations, or on twitter, or in emails (I recently told a client to <http://look.fo/how-to-use-ftp>) without having to go look up a good answer.

Stuff like that. Anyways :).

<comment><USER19> Neat!

</comment></comment><comment><USER20> Working on a desktop app that keeps your photos safe (through sync/backup), and allows collaboration on a bucket of photos across multiple computers. Photos are stored in a peer-to-peer version control system like git. <http://www.thephotothing.com>

</comment><comment><USER21> Working as a researcher on the DARPA URGENT project.

<comment><USER22> How can I get to do something similar?

DARPA has all of the amazing stuff coming out of it...

<comment><USER23> A friend of mine's working on a bunch of DARPA projects, and his path was:

1\. Attend a top liberal-arts college (CS, Amherst)

2\. Get master's degree from top research university (HCI, Carnegie Mellon)

3\. Work for General Dynamics

4\. Stick around long enough to get promoted, kick butt, etc.

5\. Profit!!!

BTW, he said that chances are, whatever the next big thing is will come out of DARPA. His bet was on pervasive computing - DARPA's apparently doing a lot with computers in clothes, computers in canteens, computers in backpacks, computers in visors, basically computers everywhere. The logic being that most of their troops are getting deployed to inhospitable environments (Iraq, Afghanistan, etc.) and if they can monitor environmental conditions for things like excessive heat, sandstorms, laser sniper sights, explosive residues, they can save lots of soldiers' lives. And of course, if it trickles down to consumer uses it could completely change how people use computers.

</comment></comment></comment><comment><USER24> Just finished a simple command-based search engine by using Yahoo APIs - <http://geeky.siong1987.com>.

Now, I am working on trakify.com. It is not up yet. Need a partner desperately.. LOL...

</comment><comment><USER25> Working on <http://www.roomorama.com>, a short term rental marketplace.

</comment><comment><USER26> I am setting up a Bank.

<comment><USER27> Seriously?

<comment><USER28> <http://news.ycombinator.com/item?id=316769>

<http://news.ycombinator.com/item?id=312260>

<http://news.ycombinator.com/item?id=283813> <\- answering why he is a programmer

:-)

</comment></comment></comment><comment><USER29> Building an infrastructure to model the spreading of epidemics (SARS, Bird Flu, etc...) on a global scale.

</comment><comment><USER30> * Porting my chess problem website (<http://chesstr.com>) from Rails to Django

* Working on a new version of my chess engine. I've had various versions over the years with the strongest playing around ELO 2300 (master level)

* Working on a chess engine that uses non-traditional searching/AI techniques. I'd be absolutely thrilled to get this thing playing as well as a child.

* Teaching Intro to Computer Science at the local university - a tremendous experience.

* Learning Doc Watson's version of Deep River Blues on my guitar

</comment><comment><USER31> Just started a video blog about stock options. Pretty fun so far.

www.investingwithoptions.com

<comment><USER32> Do you know Zecco? They're always looking for good content, and I'm happy to put you in touch with someone there if you're interested.

Disclaimer: didn't [listen] to your videos cause the I/O board on my MBP is fried and audio output doesn't work.

<comment><USER31> I've been a big fan of Zecco's business model. I'd be more than happy to generate exclusive content for major providers. Any networking you can provide would be greatly appreciated.

My main brokerage is thinkorswim and that's the platform I do screencasts from.

Hopefully (crossing fingers) when I get some good traffic going I can get some advertising contracts with some financial service companies.

</comment></comment></comment><comment><USER33> My friends and I run the Music and Gaming Festival (MAGFest: <http://magfest.org/> ) and for the past few years I've been tinkering with a webapp to help us get more organized. I've been to a lot of conventions, mostly anime conventions, and no one has a good integrated system for tracking attendees, staffers, shifts, events, inventory, budget, etc.

My webapp does all of this, and I've spent a lot of my free time lately making the code cleaner and easier to read. After the next MAGFest in early January I'm planning on releasing this webapp as an open source project on Sourceforge or somewhere similar.

I think a lot of other conventions might find this useful if they can find a programmer or sysadmin to make the small changes necessary to adapt the code for their purposes. I'm excited that some of our staffers are already planning on recommending this system to some of the other conventions they staff.

</comment><comment><USER34> I've launched (with Dan Grigsby) a blog for iPhone application developers - <http://www.mobileorchard.com/> \- or follow us at <http://twitter.com/MobileOrchard> :)

</comment><comment><USER11> Damn, people are still commenting here and I forgot to mention the non- commercial stuff I'm doing. It all lives at <http://greaterscope.net>. I'm taking a stab at:

* Creating a foreign key based ORM for PHP5 * Creating a PHP5 database abstraction layer that's easier to use than PDO or the alternatives * An abstraction layer for html forms that generates, validates and even supports deeply nested "arrays of fields" * A console terminal multiplexer (GNU screen, but split-screen) in C for Linux

Disclaimer: There are existing projects similar to many of the above, but I'm striving to make my APIs cleaner, code readable and more concise. Plus I enjoy learning by doing.

I'm also extremely interested in wireless mesh ... anyone working on that?

</comment><comment><USER35> Finishing my distributed memory list caching system. Think Memcached, but instead of storing an object, you store an array, and can CRUD it in an atomic way. Fast, simple, non-persistent. Usage case: caching a one-to-many relationship in a relational database.

</comment><comment><USER36> I'm currently working on a system flexible to play the card game Mao and every reasonable rule that could be made for it online. I'm also working on a nice, comfortable, abstract way to create Turing machines in Arc, with the ultimate goal being to have one simulate a von Neumann machine (namely by having it able to interpret a sizable subset of the machine language for a modern processor). I've taken a long break from both to work on my college applications, though.

To cut down on my total workload (and so my mother wouldn't complain when I worked on these projects), I'm using both for two different projects for the IB diploma program. As a result, I have to do the Mao-playing system in Java though.

</comment><comment><USER37> Working on my startup, <http://taskgravy.com>. A project management / collaboration suite that doesn't neglect the analytical side of project management.

And also looking for a permanent gig, because I just got laid off. :]

<comment><USER2> Best. Name. Ever.

</comment></comment><comment><USER38> A LAMP & AJAX driven framework to assist small businesses who want put their data online. It is also good at giving startups backend functionality to their databases so that they can concentrate on the client front end.

<comment><USER9> Sounds cool. How will you sell/market it?

</comment></comment><comment><USER39> I'm also at the concept stage for a site providing some tools to help UK residents manage their finances with emphasis on debts.

I have considered this idea a few times over the past couple of years as I work for an organisation that gives me a great deal of exposure to people in debt and the methodology typically used to assist them to address those debts.

In the past I have ignored the idea as I considered it technically uninteresting but I have now found myself in the position where I am (a) wanting to jump into the startup game, (b) have relevant industry experience, and (c) it's the right time (credit crunch).

</comment><comment><USER7> I have a web application that manages agile/scrum projects for large organizations. I've beta-tested it at a large corp, but they're not going to be able to use it for a while due to legal reasons.

So right now I'm finishing up version 1 this week and deciding whether to 1) start marketing version 1, 2) start on version 2 and then market, 3) wait for large corp to come around so I can continue usability testing and making the product better (it's clunky now), 4) Look for a partner and do any of 1-3

I'm not sure which way to go, to be honest. Anybody got any ideas?

</comment><comment><USER32> Working on Job Alchemist (meetings, Startuply, JobSyndicate, fundraising(??)). Trying to figure out how to get smart kids to work for startups and cool companies in general rather than for the man. Thankfully, the Wall Street meltdown will help, especially as it works its way into consulting. Get a real job, squares (or "suits," as fallentimes would say).

'Bout to lease some space at a pretty rad SoMa office loft, to be joined by Eddie of Picwing - what's his HN name?

Realizing it's way more fun when the odds are stacked against you.

<comment><USER40> his HN name is 'edawerd'

Agreed...way more fun when the odds are stacked against you. See you in the office!

</comment></comment><comment><USER41> <http://code.google.com/p/yml2tex/>

A little python script to generate a LaTeX beamer presentation with some default theming/styling/etc. added. I tend to forget the LaTeX syntax because I don't use it very often. However, I really like doing LaTeX beamer presentations so I wrote a little script which basically provides me with something to start with.

</comment><comment><USER42> Working on a P2P app for LAN/VPN. See <http://p300.eu/>

It is a "project" though and not a "startup" or "company". :)

</comment><comment><USER43> Working on:

* a web-site-as-service for customizing installation / install cds for different flavors of Ubuntu.

* a customizable tetris-like game editor done in javascript, allowing people to create their own shapes / rules / etc.

* slowly making an emacs-like editor in python

* working on a web based store for the various media produced by the house I live in

</comment><comment><USER14> I'm working on <http://rawberry.tv> \- somewhat of a platform for creating your own music video mix reel. It's not even close to being done, but I'm hoping to finish it by the time I graduate to help me land a job or something.

<comment><USER44> It's a nice looking design - what sort of functionality are you rolling in?

<comment><USER14> Thanks, I think it's going to be fairly straightforward with twitter-like functionality at first. I'm not really planning to introduce anything technically groundbreaking. I just need to have a project to work on.

</comment></comment></comment><comment><USER45> Besides the day job (Program Manager),

(a) Working through Cormen et al's Algorithms book. (b) Trying to learn how 3D game engines work by building one (in java). Rendering is completely in software. (c) Working through Rudin's "Principles of Mathematical Analysis"

</comment><comment><USER46> Concerts, theater, <http://news.ticketstumbler.com> and some other fun stuff for the <http://ticketstumbler.com> mothership

</comment><comment><USER47> Working on the next version of Gridjit (<http://gridjit.com>), which is turning out to be even better - and bigger - than I first imagined.

</comment><comment><USER48> Wow, pretty cool to see other people have a lot of irons in the fire too. Working on a (yet another) better financial management tool, raising a newborn, and the day job :).

</comment><comment><USER49> 1) a new/obscure music blog - www.audioindie.com 2) a data tracking app for medical stats 3) clinical trial data management 4) getting my car ready for a DE event.

<comment><USER50> What is a DE event?

<comment><USER49> Whoops, sorry. Driver's Education - it teaches you how to drive at speed on a race track.

</comment></comment></comment><comment><USER51> Blogging at SitePoint.com, switching RailsForum.com over to vBulletin (no, Beast won't cut it), and working on a utility for educators (K-12 and post secondary).

</comment><comment><USER52> * real time news aggregation and moderation

* sports data modeling

* desktop notification app

</comment><comment><USER53> Working on the following open source projects: Merb Rubinius Nanite Vertebra

Also working on some top secret engine yard projects that I will be able to talk about soon.

</comment><comment><USER54> Researching statistical machine learning algorithms.

</comment><comment><USER55> Still working on my website <http://overtrainer.com/>

Doing other random hardware as well

</comment><comment><USER56> making online dating reasonable @ flowmingle.com. the balance of structure and expression is a challenge, but a fun one.

<comment><USER11> is anyone aware of any non-dating sites that do a good job of helping you meet other like-minded people?

<comment><USER46> posterous.com

linkedin.com (groups - I'm just as surprised as you)

</comment></comment></comment><comment><USER57> A tag aggregator for blog/rss content: <http://www.seeksift.com/>

</comment><comment><USER58> I am working hard on pptimes.com every night, it's another next generation news site, I will announce here when done.

</comment><comment><USER59> Fundraising for NewsCred! It's actually fun and not as depressing as all the blog posts make it out to be.

<comment><USER46> I agree. So many free breakfasts, lunches, dinners, beers and even paintball too. All while meeting some very intelligent people.

<comment><USER60> paintball?

<comment><USER46> Yeah Battery bussed ~70 us an hour away for an all day paintball/beer drinking/BBQ. It was awesome. They even gave us custom masks to keep.

</comment></comment></comment></comment><comment><USER61> <http://redlists.com>

A better methods for managing mailing lists.

</comment><comment><USER62> I'm working on a great Google map application, that the most I can say for now (stealth rule).

</comment><comment><USER63> A kick-ass reputation monitoring tool... once I find the right lead developer / partner ; )

<comment><USER64> I think I like that idea. Now just add in a kick-ass reputation fixer module and you're set :)

<comment><USER63> LOL, the spec doesn't cover that I'm afraid, though it would be a killer feature. I can think of various politicians that might want it...

<comment><USER65> Woha, you have a spec - I figured there wouldn't be any of that on Hacker News.

<comment><USER63> Don't worry, it's an agile spec. Very loose. Bullet points are amazing things.

</comment></comment></comment></comment></comment><comment><USER66> Video communication, Mobile Communications...

</comment><comment><USER67> Integrating www.trovix.com to www.monster.com

</comment><comment><USER68> A Masters degree in CS at Texas Tech.</comment>


Why We Chose Typescript - <AUTHOR> https://redditblog.com/2017/06/30/why-we-chose-typescript/ <comment><USER2> If you want runtime assertions with flow you can use flow-runtime [0].

Babylon merged TypeScript support yesterday [1]. This means that in the future it should be easier to setup Babel with TypeScript.

I agree with the decision to go with TypeScript. It has drastically better community support. Most third-party components won't have flow annotations. Flow would've been a lot more successful from the start if it had started out with DefinitelyTyped support. Heck, even now I'm still wondering why they don't do that.

[0] [https://codemix.github.io/flow- runtime/#/](https://codemix.github.io/flow-runtime/#/)

[1] [https://github.com/babel/babylon/pull/523#issuecomment-31172...](https://github.com/babel/babylon/pull/523#issuecomment-311720960)

<comment><USER3> Sorry but what is the use case for Babel + TS? I thought you use either Babel or TS but not both together.

<comment><USER4> One case I ran into: using css-loader/style-loader for my css. TS doesn't understand importing css files, so that's where Babel comes in.

In the end i decided to stick to 'old-fashioned' SCSS with an npm script; the downsides of adding Babel to my stack weren't worth the upsides of css modules. Difficult decision to make though.

I guess what I'm saying is that while there is a use case, so far it's been worth it to just stick to TS without Babel, much as I wish it'd be different.

<comment><USER5> You could use the webpack (which you might be using already) css loader and declare the css file as any.

</comment></comment></comment></comment><comment><USER6> > Using a typed language in our frontend has already paid dividends: our code > has fewer type-related bugs, we are more confident making large refactors, > and our inline documentation is focused around concepts instead of object > shapes and function parameters.

Sounds like they learned from their mistake of using Python on the server- side. Dynamically typed languages for large code bases are terrible.

<comment><USER7>
        Dynamically typed languages for
        large code bases are terrible

The success of Wikipedia, Wordpress, Facebook, Youtube, GitHub etc etc etc and last but not least Reddit seem to prove otherwise.

<comment><USER8> > seem to prove otherwise

Prove how? They could have succeeded in spite of dynamic typing, not because of it. Facebook defined a new programming language to add static typing to HHVM. The process of plugging into WordPress is infamous in its disorganization.

There's a lack of good statically-typed languages, so it's natural for many popular things to be built in dynamically-typed ones, but that doesn't make the dynamic typing approach better.

<comment><USER7>
        Prove how?

By means of natural selection.

        They could have succeeded in spite of
        dynamic typing, not because of it.

You think the otherwise smart and successfull founders of these projects all made the wrong choice when it came to selecting the right tool for the job?

        Facebook defined a new programming language

No, they wrote a faster runtime.

        to add static typing to HHVM

No, they added type annotations.

        There's a lack of good statically-typed languages

No, in the past statically typed languages were the norm. C, C++, Java...

It's just that dynamic languages outcompeted them.

<comment><USER9> > It's just that dynamic languages outcompeted them.

All "trending" languages are statically typed (Rust, Go, Swift, Kotlin, ...) and all the popular JavaScrip-improved-languages are statically typed as well. Even further, many dynamically typed languages have pushed in recent years to add type annotations or even static typing (e.g. mypy).

Dynamic typing is the brainchild of the 90s for rapid _initial_ development. Sustainability has been a big issue from the outset.

<comment><USER10> Dynamic typing is from 1958 Lisp. Your history is off a bit there, by some forty years.

<comment><USER11> The 90's also saw much commercial experimentation with visual environments (e.g. Visual Basic, Delphi, JBuilder) with round-trip conversion between the layout form and underlying code. They were promoted for R.A.D. (rapid _application_ development -- remember that acronym?) but, like dynamically typed languages, they also had sustainability issues.

Of course, like dynamic typing and Lisp, visual environments also had Smalltalk from way back, but they were before big business became infatuated with the ideas.

<comment><USER12> How do products like Delphi have sustainability (maintainability ?) issues ? Delphi/Object Pascal is statically-typed, so you can't even build an application that has issues with the code-behind for a form.

You _can_ see errors at run-time from mismatches between the code-behind and the forms, but this has nothing to do with the language. It's just the way that certain products like Delphi decided to handle such mismatches. You'll see these types of issues with _any_ code that performs run-time serialization/deserialization of class instances. Our product, Elevate Web Builder, uses a similar architecture with its WYSIWYG form designer/forms (they use JSON instead of a custom key-value format), but it simply _ignores_ properties in forms that don't exist in the actual code.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Is Typescript necessary for front-end Javascript?

In the many years I've done front-end with Javascript, type-related bugs were very, very rare. Textbook logic as why to use strong types make absolute sense. Yet in the real world, I've had to fight with logic, DOM, UX, framework incomprehension and other types of bugs - not types. Type issues were anomalies among bugs. When they came up, they were the easiest to fix.

Am I alone here? Anyone in the community have concrete examples of type- related bugs that took so much time to required using something like Typescript? Can anyone quantify that?

<comment><USER14> > In the many years I've done front-end with Javascript, type-related bugs > were very, very rare.

Wow, really? My experience has been the complete opposite.

Most of the bugs that slip into production have been dumb type errors. Things like accessing a property on an null/undefined value, or on an object that doesn't have that property and unfortunately JS just returns `undefined` instead of complaining (these silent ones can live longer before being spotted).

It's because of these kind of bugs that i've found many JS codebases tend to become brittle to the slightest change, and very difficult to refactor into a good shape. And why i'm seeking statically typed languages like TypeScript on that front at the moment.

<comment><USER15> But that's really a symptom of a "big ball of mud" design (non-design, really), where everything has dependencies scattered all over the system, and to change anything you have to consider everything.

Type checking can help you with a few kinds of problems you'll have trying to make changes in those kinds of systems, but you still have piles of problems and it doesn't do anything to help improve the underlying issue.

Static types can help you with some small problems, but that doesn't mean much when the problems you have are big.

<comment><USER14> > But that's really a symptom of a "big ball of mud" design (non-design, > really)

Yep, that's exactly the problem :)

The thing is that, without ease of refactoring, it's very difficult to change that big ball of mud into something prettier. In fact, i'd say that without ease of refactoring it's kind of inevitable to fall into that big ball of mud "design" in the long run.

(Note: static type systems are not the only tools to help with refactoring. Good test coverage, style guidelines, a well documented / simple architecture, are of course very helpful too.)

<comment><USER16> Exactly. Static types ( I've used flow not typescript, but similar ) and good unit tests allow ridiculously easy and merciless refactoring of enormous swaths of code in an extremely short period of time with incredibly high confidence.

Integration tests ( not to be confused with functional tests / i.e.: selenium ) that test multiple classes in concert via input / expected output give the most bang for the buck, because you know your code works as a whole.

</comment></comment></comment></comment></comment><comment><USER17> It's hard to take these kind of posts seriously when Reddit mobile site is one of the worst performing SPAs I've ever used.

<comment><USER18> What are your specific criticisms?

<comment><USER19> Personally, I find the entire experience to be incredibly slow. Loading the front page takes multiple seconds, there is a noticeable delay between tapping a link and any form of response, and back navigations are often unexpectedly slow.

Non-SPA related, I also think that many of the touch targets are too small, or work in unexpected ways. Tapping a username collapses a comment, even though there's an arrow next to it. Tapping an image associated with a link doesn't follow the link, it expands the image (even if it is an article link). Tapping the title takes you to the comments, not the article. The only way to get to the content is to click the itty bitty domain title beneath the title. All of these behaviors are different than how the desktop view behaves. For a site that calls itself the front page of the internet, it's getting harder and harder to get to actual content.

<comment><USER20> That's funny. Reddit took over my [desktop] web surfing precisely because of how much faster/cleaner it is than any other comparable website. Beaten only by HN.

<comment><USER21> HN is usability and speed taken to the extreme. I mean it the personification of Unix philosophy 'do one thing and do it right'. So no bloats.

</comment></comment></comment></comment></comment><comment><USER22> I've worked with TypeScript on and off for a couple of years now. I don't like it.

The compilation step is a major pain. Even after using it for several months straight, I feel like I'm in a constant battle with the compiler. It's slow and difficult/annoying configuration problems keep coming up from time to time. It slows down my debug cycle and the compilation delay makes me lose my train of thought. I used to love using console.log() to quickly test an assumption in JavaScript; you cannot do this with TypeScript (it's not practical given the 5 to 20 seconds compile time); you have to use the debugger every time and step through stuff (even when you have a very good idea about which specific variable you want to check) - It's extremely cumbersome.

I have gone back and forth from dynamically typed languages to statically typed languages many times for years and I've spoken with engineers who used to be Java developers for many years, then switched to Javascript, then TypeScript and they shared the same thoughts as I did. TypeScript is slow and restrictive in a way that is unnecessary. It's got Microsoft all over it.

Also it forces all developers to use bulky commercial IDEs like WebStorm because you rely more on code completion to help you figure out the right types. You can say goodbye to Atom, Sublime and the rest... Atom's TypeScript plugin is not good enough unfortunately.

At my previous work, even developers who said that they liked TypeScript secretly didn't like it because they used the 'any' type Everywhere.

I wonder if the people who are making this decision have actually tried TypeScript themselves for any decent amount of time on a decent sized project. I don't think they know what they're getting into.

I decided not to renew a lucrative contract at a finance firm as a front-end developer in part because I did not enjoy using TypeScript every day.

<comment><USER3> > It's slow and difficult/annoying configuration problems keep coming up from > time to time. It slows down my debug cycle and the compilation delay makes > me lose my train of thought. I used to love using console.log() to quickly > test an assumption in JavaScript; you cannot do this with TypeScript (it's > not practical given the 5 to 20 seconds compile time);

Have you ever used `tsc --watch`? First build can take long but modification and rebuild takes < 1s.

> you have to use the debugger every time and step through stuff (even when > you have a very good idea about which specific variable you want to check) - > It's extremely cumbersome.

You don't "have to" use the debugger if you prefer `console.log` all the way. However in the debugger there is a "watch" tab for inspecting specific variables.

> Also it forces all developers to use bulky commercial IDEs like WebStorm > because you rely more on code completion to help you figure out the right > types. You can say goodbye to Atom, Sublime and the rest... Atom's > TypeScript plugin is not good enough unfortunately.

VSCode? [https://code.visualstudio.com/](https://code.visualstudio.com/)

<comment><USER22> Using console.log is not practical with TS because I only get one chance per debug cycle to log the value of the variable which I think is of interest. If that doesn't give me any insight, I have to log another variable. This is fine with JavaScript because it takes me about 2 seconds to add a console.log and check it. With TypeScript, the cycle takes about 10 to 15 seconds, so it's not efficient to do that, so yes, I end up having to fiddle with the debugger, add watchers and hover over individual variables... I kind of have to deal with the debugger's clunky UI every time which is slower. If source maps don't work correctly (as was the case for a lot of projects), then the debugger is even more of a pain.

I've worked on TS on large existing projects as part of large teams. In my last project, we did have some sort of file system watcher but it still took > 10 seconds on average to compile. Launching the project from scratch took longer than 1 minute. From time to time, I did have to relaunch the whole app; usually for a different reason every time.

</comment></comment></comment><comment><USER23> I'm coming at this from the Elm-camp, and my first impression (and largely why I think languages like Elm is promising) is how languages that are implemented as supersets of other languages have the potential to be as bad as their subsets.

The example that I was given was C++ and C, but I think TypeScript with it's gradual-typing approach is forced to remain potentially as bad as JavaScript itself - that is, if you're feeling weak and want to "get shit done", you can bypass all the goodness that TypeScript undeniably offers you.

For a language like Elm, the type-system is invariably gonna have your back - a value-proposition I think means a lot more in practice than some self- proclaimed pragmatists realize :)

<comment><USER24> tsc --noImplicitAny solves that.

<comment><USER25> Or to go all-in - we have a `--strict` flag that gives you `noImplicitAny`, `strictNullChecks`, `noImplicitThis`, and a mode that always puts you in `"use strict"` mode.

<comment><USER26> I don't understand why `strictNullChecks` is not the default behavior. It being a special compiler option makes me somewhat dubious of TypeScript in general.

<comment><USER24> Backwards compatibility.

</comment></comment></comment></comment></comment><comment><USER27> Wondering why Dart was not considered. Large apps are written in it (Ad sense UI, Ad Words UI, Google CRM). Has good tooling (IntelliJ plugin, Webstorm). It's fairly easy to pick up - Java/C# like syntax. It's harder to shot yourself on your own foot (it's not JS superset). It has strong mode. It has superb tooling and package manager ( dartanalyzer, pub)

<comment><USER28> Dart is for Google, by Google, and external engagement has been as neglected as for all of Google's front end efforts. Google ceded the thought leader position in this area years ago and everybody knows better than to trust any of their new efforts.

<comment><USER29> There's still polymer which is developed by chrome team and angular2 by ads department and those seem to be quite industry proven. E.g. angular2 is one of the main adopter of typescript.

<comment><USER28> Don't forget that Google's first instinct for Angular 2 was to create an incompatible fork of TypeScript.

[https://en.wikipedia.org/wiki/AtScript](https://en.wikipedia.org/wiki/AtScript)

<comment><USER30> That was because TypeScript didn't support decorators back then - the "at" comes from the at sign.

<comment><USER28> Yes, and what kind of reasoning is that? You do not fork a language to make your framework a little more convenient. It's inane. That's how you end up with both a dead language, and a dead framework.

Microsoft saved them from themselves. (I expect they could have arranged to have the feature added without first publicly declaring their intention to fork the language, but that's above their community engagement skill level.)

Google's Closure Compiler was the best version of compiled JavaScript for five years. It should have been the winner, but Google did nothing to make it palatable to the open-source community (docs are a disaster, the code is full of unexplained Google-specific workarounds, it integrates with nothing), got trampled, and now they're forced to adopt someone else's tech to remain relevant. Google is _so_ bad at this.

</comment></comment></comment></comment></comment></comment><comment><USER31> I recently moved to a company using Flow from one using TypeScript, and it seems like the tooling ecosystem for TypeScript is way better than flow. The emacs plugin for flow in particular is practically nonexistent, and doesn't even provide proper syntax highlighting. TypeScript's by contrast is amazing.

</comment><comment><USER32> I recently had to do some Node.js scripting. My JavaScript experience was minimal and having worked almost exclusively with typed languages I considered Typescript. I decided against it eventually because I figured you need to know JavaScript first to understand the JavaScript ecosystem even if you are writing your own code in TypeScript.

Does this make sense or is it feasible to skip learning JavaScript and jump directly to TypeScript?

<comment><USER33> TypeScript is, strictly, a superset of javascript. You probably could "jump directly to TypeScript" but you would not be able to "skip learning JavaScript" as TypeScript is based off the concepts in JS.

That being said, I don't see why you couldn't learn them concurrently; you can learn the basics of TypeScript and then simply rewrite any relevant JS example code into TypeScript to learn JS code in a TS context.

Edit: I should also point out that integrating with any JS libraries may require you to install the '@types/' package alongside it to maintain type- safety. For example, if you're using jQuery, you can install the '@types/jquery' package which will expose all the type information for the jquery package.

<comment><USER4> The downside of going straight for TS is that it's a bit more work to figure out how to build and debug (with sourcemaps) if you're not too familiar with front-end development.

On the other hand the upside, and a very big one, is that if you set up the relatively simple TS build process, you automatically get all the ES2015+ stuff for free, even without needing to figure out Webpack and Babel and the like (with some caveats front-end-wise, primarily Promises and Fetch).

</comment></comment></comment><comment><USER34> Reddit should stop promoting their app on every freaking action you do on their website. I refuse to install because of it. Just build a better website.

</comment><comment><USER35> Javascript is a _weakly_ typed language and no superset like Typescript or Flow will solve this problem, just mitigate it.

However, on the other hand, I think that a _good_ , experienced developer has no problem with that. The bugs that the experienced developer "fears" have nothing to do with type errors, which at the end are rather easy to solve...

<comment><USER36> _> The bugs that the experienced developer "fears" have nothing to do with type errors, which at the end are rather easy to solve_

Not sure how you define "experienced developer", but I think you got it backwards.

A good type system enables you to structure your code in a way that most sublte bugs are "converted" to type errors. That's the magic of types!

Your type definitions aren't just some syntactic sugar so that the type checker finds some typos.

Your type definitions are a vital part of the code base that you design to protect it from changes that introduce subtle bugs - the kind of kind you can easily foresee when you wrote a particular module, but which others (or yourself after 6 months) won't be aware of. This is especially important on refactoring, but also super helpful for non-trivial extensions.

In that sense the types are like unit tests. Although they are less flexible than unit tests (so they are no substitute), they make most of your unit tests unnecessary and are shorter and easier to write and to maintain than those unit tests. Most importantly, however, they "test" all cases, statically at compile time, not just the specific cases of your unit tests.

<comment><USER35> Good reply, but the benefits you described are already realized by _strong_ typing, which is not the same as _static_ typing.

A language with strong typing (which additionally can be a dynamically typed language, something that many people are not aware of) will catch any of such type errors, without having to bother adding type specifications/signatures everywhere in your code. Thus, those are bugs that are trivial to solve.

And this, to paraphrase your post, protects your code from changes that introduce subtle bugs.

You can also have a language that is statically typed but that has weak typing! Which language? C. And i think everybody knows the extra effort needed to keep a C program bug free. And this not only due to lack of automatic memory management!

I have been programming for most of my life, that is about 23 years of programming on where 20 of those years were using statically typed languages, including many years programming on large, business-core systems on Java and C#. I since have gone to dynamically typed languages and never looked back. You just need strong typing, that's enough.

<comment><USER37> A compiler verifying against a static strong type system proves certain properties about your program which provides some assurances about what your program can and cannot do.

You might be able to prove more assuring properties about your program with a test suite.

When the GP said:

> A good type system enables you to structure your code in a way that most > sublte bugs are "converted" to type errors. That's the magic of types!

I am almost certain that s/he meant type errors uncovered without actually executing the program. In a dynamic strongly typed language, you will need to execute the program and force it into these errors - presumably using a test suite.

> A language with strong typing (which additionally can be a dynamically typed > language, something that many people are not aware of) will catch any of > such type errors, without having to bother adding type > specifications/signatures everywhere in your code.

A static type system does not need type specifications/signatures "everywhere" in your code. In Java and C#, it does. But many modern languages, TS included, can infer static types to a large extent.

<comment><USER36> _> I am almost certain that s/he meant type errors uncovered without actually executing the program. In a dynamic strongly typed language, you will need to execute the program and force it into these errors - presumably using a test suite._

Yes, this is exactly what I meant. Well, I was really arguing for both, static _and_ strong typing, although my argument concentrated more on the "static" part, as that gives you safety and correctness guarantees that cannot be achieved with assertions and unit testing at all.

 _> A static type system does not need type specifications/signatures "everywhere" in your code. In Java and C#, it does. But many modern languages, TS included, can infer static types to a large extent._

I relied on type inference a lot when writing OCaml code. However, I noticed that on some places I still want explicit types. (I just don't want to be forced to type them on every variable.) For example, on most function definitions an explicit type helps a lot. Otherwise, the compiler can only tell you that your function call doesn't match your function - but can't tell you whether your function is wrong, or the code using it. With an explicit typing of the function, you know exactly which side is wrong. Also, in case it is the function, you'll note this when writing the function, not later on when trying to use it.

</comment></comment></comment></comment></comment><comment><USER38> As much as I am disappointed that Nim wasn't chosen, I am impressed that it was mentioned at all. Nim's JS backend is still rather young, and tooling is definitely lacking. But you can make some pretty cool things with it[1].

1 - [https://picheta.me/snake/](https://picheta.me/snake/)

<comment><USER39> Yeah, I did a double take when I saw it on the list. We use Nim at my new work extensively for some back end stuff (mainly homomorphic encryption experiments, but a full implementation of Paillier is also in it!) and I've just started getting the team to leverage it for the front-end too :)

<comment><USER38> That's awesome. Can we expect a blog post from you about Nim in the near future? :)

<comment><USER39> Yep, especially because IBM just gave me a 20-core (8 hardware threads per core) POWER8 server with 256GB of RAM to run this stuff on, so I'm going to have a lot of fun getting Nim up and running on it!

<comment><USER38> Awesome! If you want it posted on nim-lang.org then just create a PR on the website[1] repo :)

1 - [https://github.com/nim-lang/website](https://github.com/nim-lang/website)

</comment></comment></comment></comment></comment><comment><USER40> The intellisense you get with TS is quite nice, as is improved refactoring. I also think typing in function signatures is a good thing and increases comprehension.

But the type-safety you get with these kinds of static languages only catches a few trivial bugs. There are also some situations where TS complains where it shouldn't, for instance it doesn't handle JS' built in reduce function very well.

In the end, it's a trade-off between the benefits and added costs. It is in no way a given that adding static typing to your JS project will be beneficial when all factors are considered.

<comment><USER41> By contrast, does anybody think that having "stronger" dynamic typing (don't convert strings to numbers as implicitly, etc.) like Python's would not be a huge benefit?

<comment><USER4> That's actually one reason why I often opt for TS. While the 'stronger dynamic typing' isn't the most sexy benefit, it has saved my ass quite often.

There are so many situations where my input is strings (JSON through various API's) that _should_ get turned into just integers, floats or (string) constants shortly after being consumed. Using TS types from this point onward promotes discipline to do so on my part, removes any ambiguity going forward, and alerts me if I treat these values as strings or any other wrong type (which commonly happens to me, at least, when using vanilla js).

<comment><USER41> I agree - one thing is noticing bugs, which is easier with stronger dynamic types.

And as you say it's also important to setup some boundaries so that bad values can't travel to the other end of the program before you notice, which is a pain to debug.

I like to make value checks on module boundaries, but do much fewer checks inside modules. I typically do this using assertions. Optional types can be a way to do it with less noise. But they still can't replace asserting arbitrary invariants, like invariants involving multiple values.

</comment></comment></comment></comment><comment><USER42> TypeScript is an excellent language.

<comment><USER27> No it's not. It has all JS flaws - it's just better than js and it's easy to use it with js. Otherwise Dart would win.

<comment><USER43> Like what? TypeScript is careful to avoid a lot of JS's footguns (implicits, undefineds, etc.)

<comment><USER44> == versus === and all the other weak typing wats, undefined type still exists in typescript, no integer type, UTF16 strings are the ones coming to my mind and I don't even program in JS/TS

<comment><USER45> I'm pretty sure all weak typing warts basically stem from equality checks with ==/===. If you use === all the time you'll never run into them.

TS has optionals so undefined is not an issue.

The rest is valid.

<comment><USER44> There are also some JavaScript functions like isNaN that also do type coercion and of course +. How is this handled in typescript?

<comment><USER46> In a word, "correctly". The result of an expression with + or isNaN() will be of whatever type the JS spec says it should be. This is one of the less frequently touted, but more useful aspects of TypeScript - the lib.d.ts file acts as a partner to explain to you how the built-in JS type system actually works without you having to memorize or look up everything in docs.

</comment></comment></comment></comment></comment></comment></comment><comment><USER47> Can someone please _prove_ that types make development somehow safer and more productive?

I for example believe that readability matters, and typescript is not that, compared to Python or even coffeescript.

And I really don't like how all the cool new languages lack significant whitespace.

You can probably tell I'm a Pythonista. A Pythonista always pays his technical debt.

<comment><USER48> > And I really don't like how all the cool new languages lack significant > whitespace.

Significant whitespace is redundant in the face of auto formatters. The latter are becoming more popular, and rightfully so.

<comment><USER47> Auto formatters still make you look at the braces... and typescript needs a lot of those. It's not just about formatting...

</comment></comment></comment><comment><USER49> I tried typing functional programming library Ramda using TS, and got frustrated it still had some limitations (e.g. needing overload codegen in lieu of variadic support).

I tried finding what TS can do now, and figured out type-level tuple iteration, among a few others. The current roadblock seems to be getting function return types. Progress, for anyone interested: [https://github.com/Microsoft/TypeScript/issues/16392](https://github.com/Microsoft/TypeScript/issues/16392)

At this point I'm amazed how close we are to typing anything, despite having only 5 (!) type-level operators, with their respective warts.

</comment><comment><USER50> Gotta comment ... I dove into TypeScript about a year ago and dropped it. I saw the value but because of a large number of libraries and custom components of my own, switching purely to TypeScript wasn't easy and I was in a hurry.

Fast forward several months and I picked it up again. I've now been writing _everything_ that I would have done in JS in TypeScript and have built several applications using both Angular and React entirely in TypeScript. I've also sold my teammates on switching to the language.

When I was (stuck) writing JavaScript, the frustration factor was high for me. I'd get nebulous errors[0], hunt around the line it referenced, swear a little, and trace the code back to the cause. I would wildly estimate that one out of ten attempts at blindly running my code would succeed[1]. Even on unit tests, which had a higher degree of success since they were testing much less, still had a _much_ higher fall-over[2] rate than I get in typed languages that I enjoy. The addition of types, which adds a little overhead, flipped that over. I am _still surprised_ every time I refresh a page that uses code I'm modifying and _it loads_. The reduction in time spent debugging (and swearing) makes me enjoy the language more every day that I use it. It's even left me longing when I am writing code in other languages (mostly Java/C# these days) and features I have come to really enjoy (union types, intersection types and to a lesser extent the duck-typing nature of the language[3]).

Since crapping on _any_ language, or feature/lack of feature of a language tends to become a religious war fought with verbal violence, allow me to admit a few points: Traditionally, I avoided JavaScript and jobs related to it. Personally, I hate the language. This means I've spent considerably less time researching all of the best practices/techniques for surviving those cases where I _have_ to write JavaScript. I started in C and Pascal and prior to a few months ago spent 99% of my time in typed languages. I am an advocate for unit testing[4], but I find test-driven development requires me to work backward and it's less productive for me. I'd imagine that if I went _all in_ with TDD, I might see fewer of these problems, but many of the best practices for JS development are best practices in the languages I am more proficient in and despite following these practices, JS design led to these practices being less effective at reducing bug frequency. Yes, I could just be a yelling 'get off my lawn' because I'm unwilling to change[5]. But I've also worked closely with highly-skilled JS developers who could rapidly produce incredible things as a result of its flexible, dynamic typing. Incredibly, though, one of those 'huge JavaScript advocates' was the one who told me to give TypeScript a chance late last year. Though he would always fight me on the "dynamic vs. static" thing, his argument was that TypeScript's type system was light-weight enough to keep out of his way while strict enough to lower the frequency of self-inflicted foot bullet-holes (paraphrased). Really, though, ... two nulls, asinine boolean implicit conversions necessitating code like double-bang and === / !== operators[6] should be enough.

[0] Often depending on whatever framework I was using, but I've rarely found one that returns an error that results in a really _obvious_ 'oh, I know what I did to cause that'

[1] I like to check that a component renders visually appropriately and often do a quick check before I've written all of the required unit/integration tests to make sure it's rendering accurately (right data/right result).

[2] As in, something fails badly enough to stop execution rather than just failing on an assert for an incorrect result.

[3] It's a love-hate thing for me -- the result is being able to reduce boilerplate making mostly-compatible types interact, but the down-side is that the compiler giving a pass to "A=B" when "A" has at the properties of "B" results in some subtle bugs that have already bitten me more than once.

[4] Though I don't buy into TDD (either before writing the code or after) solves most of the issues of dynamic typing. I've had more than a few tests fail because of a type-related issue...in the test.

[5] Except that I _love_ learning new languages and 'keeping up' and have found that as I've aged, I can pick up new languages far more quickly than I could in my early 20s... [plug]RUST![/plug] I'm also not terribly old, nor terribly sensitive about being called an oldster.

[6] I don't recall who, but someone was once reading code out-loud and said "if action _fuckin ' equals_ 'ADD' and payload.Length _doesn 't fuckin' equal_ zero". Adding in the _fuckin '_ every time he encountered the "really, really [not] equals" operator. So that is how I mentally read those. I'll never forgive him (sorry for the swears ... and doubly sorry if you end up reading code like this as a result).

</comment><comment><USER51> upvote should be a global with capital letters. but writing it like that might be a leaky abstraction of the underlaying database storage. should the web dev really have to know that some variable is represented by a tinyint later converted to a float, then "optimized" to a 32 bit int !? why make it into a failure point when there is so little gain in performance and make little sence in a high level, lose typed language such as javascript. stop writing javascript like its java!

</comment><comment><USER52> > _Should work on both the client and the server. SEO is very important to > Reddit, so lack of universal rendering is a deal breaker._

This sounds like a total non-sequitur.

</comment><comment><USER36> From the article:

 _> Typescript also came with a lot of "social proof" and better assurances about its longevity There are several large projects using Typescript (examples include VSCode, Rxjs, Angular, and Typescript itself),_

While I agree with the sentiment, I don't understand why they include "Typescript itself" in this list. Isn't that a circular argument?

<comment><USER46> Not really. It's direct proof that the language is good/fast enough that the people creating it chose it for themselves. The flow team, for example, wrote their language in ocaml.

</comment></comment><comment><USER53> I would like to know if they are moving towards a SPA architecture and, if so, what framework they will be using.

<comment><USER54> The mobile experience is a single page app. It's not very good.

<comment><USER55> If you land on the desktop site, it consistently pushes you to download the app, and buries the mobile link.

<comment><USER56> It is an incredibly ham-handed way to try to push people into the app. Extremely irritating.

</comment></comment></comment></comment><comment><USER57> > Should work on both the client and the server. SEO is very important to > Reddit, so lack of universal rendering is a deal breaker.

Are client-side only JavaScript applications not handled well by the likes of Google et. al. today? I was under the impression that they run a full JS interpreter.

<comment><USER58> [https://www.stephanboyer.com/post/122/does-google-execute- ja...](https://www.stephanboyer.com/post/122/does-google-execute-javascript)

</comment></comment><comment><USER59> I would have more confidence in the list if they spelled ClojureScript correctly.

<comment><USER60> I suppose I'll piggy-back this off your comment, since mine doesn't really deserve to stand at the top level, but I am also surprised this blog post can't stylise TypeScript correctly...

</comment></comment><comment><USER29> The screenshot in the header is strange. Why would they reimplement arrayToDict function instead of using lodash's _.indexBy

</comment><comment><USER61> I personally skipped Coffescript, Javascript Generators and Angular.

And none of them passed the test of time.

So I think I made the right call by not adopting them super early.

I think I'm going to do the same with Typescript. Hopefully static typing will be adopted by ES.Next and then I'll port my programs to it.

<comment><USER45> Er, JS generators definitely did pass the test of time and are now part of modern JS.

<comment><USER62> With async/await there's not much of a case for their use anymore, though

<comment><USER63> The regular generator use (return a lazily-evaluated iterator) still exists.

</comment></comment></comment></comment><comment><USER64> From what I know of the Reddit community and their feedback on anything any of these "new devs" have done, it's not going to matter how pretty, well-typed or "scalable" (whatever that means) the code is.

All the new product is just awful. I feel sorry for them.

</comment><comment><USER65> Anyone know existing open source projects written in Flow?

<comment><USER66> There are quite a few. I know some Facebook projects are.

From the top of my mind [https://github.com/styled-components/styled- components](https://github.com/styled-components/styled-components).

</comment></comment><comment><USER67> ok. i get why you chose typescript.

however, why did you choose this weird cursive-ish monospace font? and...where can i get it?

<comment><USER68> Operator Mono

[https://www.typography.com/fonts/operator/](https://www.typography.com/fonts/operator/)

</comment></comment><comment><USER69> Lord that font in the header image is disgusting. Who would want a faux- cursive programming font?

<comment><USER70> Anyone knows what that font is?

<comment><USER71> Operator mono I think. It costs a lot.

<comment><USER70> Thank you!

</comment></comment></comment></comment><comment><USER72> Buy _why_ are you redesigning the site? It looks fine as it is. Let me guess some designer told you to redesign it in order to justify his paycheck.

</comment><comment><USER73> "We picked Typescript because this is what we feel everyone else is using and wow are we late to this party"

Take nothing away from TS but the mobile Reddit is all the proof in the world that no matter the language, the paradigm or the ecosystem, someone can still use it to turn out a horrible product.

<comment><USER74> Using quotation marks with false quotes is a pet peeve of mine. It misleads the reader, and is essentially admitting to setting up a strawman.</comment></comment>


A Guide to Generating Buzz Through Social Media - <AUTHOR> http://blog.ajlisy.com/2009/03/andrews-guide-to-generating-buzz-through-social-media/

<comment><AUTHOR> Won't be anything revelatory to you veterans out there, but a good starting point.</comment>


Http://www.isjavaexploitable.com/ - <AUTHOR> http://www.isjavaexploitable.com/

<comment><USER2> I have the latest Mac OS X version and no Java updates are available and this website says I have 1.6.0u33 which is exploitable. That means tens of millions of users are in danger, which I interestingly safely ignore. I will not download a JRE (especially Java 7) and install to my Mac other than Apple distributions. God knows what will break down with Java 7 on Mac. Maybe nothing, but I don't bother.</comment>


The clusterfuck hidden in the Kubernetes code base - <AUTHOR> https://ftp.osuosl.org/pub/fosdem/2019/UD2.120/kubernetesclusterfuck.webm <comment><USER2> Only one? My official impression of k8s from many sources, bug reports, first-, second- and third-hand experiences is that there's quite a pile of mud with steam rising from it. There may or may not be viable alternatives, but on its own, quality is a qualitative quality that appears to yours truly to be seriously lacking on multiple fronts.</comment>


Show HN: Draftss – Design and Code on Monthly Subscription - <AUTHOR> http://draftss.com/ <comment><USER2> Seems kind of neat, but I wonder who the target audience is?

Has to be a company that has enough ongoing design work that it justifies the price, but not so much that they could just bring it in house. Is that a large segment? I have no idea.

On a similar tack, I recently started using a company that has a monthly cost ($250) for 4k words worth of blog posts, which I use to write blog articles for several side projects. I've been happy to outsource this chore, so perhaps a market does exist for Draftss as well. Best of luck.

<comment><USER3> > On a similar tack, I recently started using a company that has a monthly > cost ($250) for 4k words worth of blog posts

What the hell? That seems outrageous for a blog. What am I missing?

<comment><USER4> Outrageous!? I thought it was cheap.

Where do you find your copywriters, if that's expensive?

<comment><USER3> I guess I didn't realize it was copywriting and not just "writing blog posts for side projects".

</comment></comment></comment></comment><comment><USER5> Another subscription service. Why?

Are you hoping that some people will forget that they signed up and then keep paying you for years?

<comment><USER6> The work samples on their portfolio look pretty bad but I actually think this is a great idea.

Many businesses have ongoing design or development needs but not enough revenue to sustain adding a full time hire. This would be perfect for them.

In fact, the retainer model has been popular with agencies for decades. It allows the client to get work whenever needed without having to brief, scope, contract, and bid out a new team each time. On the agency side, it allows them the reliable revenue to retain the talented employees that the client hired the agency for in the first place.

It's a win win.

</comment></comment><comment><USER7> Your home page, pricing info and FAQ are littered with grammatical and word choice errors. I understand that this is probably frustrating for you if English is not your first or native language. But I also need to have confidence that a design company are going to pay attention to that sort of thing, taking steps to overcome their own language deficiencies. Can't comment on the quality of your design work as I'm visually impaired.

</comment><comment><USER4> I was interested. But couldn't get their company details and no Privacy Policy, not via their chat either.

They just repeated "Draftss" as company name, but I can't find any such company.

<comment><AUTHOR> We are still in process of setting up things. Would provide you with the required details. Here is my email: firstname.lastname@example.com

<comment><USER8> The website exists since 9 months [https://news.ycombinator.com/item?id=16984300](https://news.ycombinator.com/item?id=16984300)

<comment><USER4> Yeah, I noticed the same, I can't trust a service that want to keep itself secret.

</comment></comment></comment></comment><comment><USER9> I think the website seems pretty good. Although, I don't find any codes in your portfolio.

<comment><AUTHOR> We have not uploaded the codes yet. If you would like to see some of our projects, I shall send it to you via email.

</comment></comment><comment><USER10> Bad cert domain error when navigating to [https://draftss.com](https://draftss.com).

<comment><AUTHOR> We are still in process of setting up the SSL certificate. Meanwhile, try using [http://draftss.com](http://draftss.com)

</comment></comment><comment><USER3> Your site constantly "jumps" up and down on mobile safari due to the animated text typing and deleting. Not very good for reading.

<comment><AUTHOR> Thanks for sharing. I shall have it fixed.

</comment></comment><comment><USER11> I nearly signed up until I saw the portfolio page :(

<comment><AUTHOR> I'm not sure what you've been looking for, but would definitely help you resolve over the email. Connect with me on firstname.lastname@example.com

Also, we have a 100% money back guarantee if you do not like the designs we create for you.

</comment></comment><comment><USER12> how many times should you put your project as a SHOW HN post?

<comment><AUTHOR> We are launching all our products under the Draftss brand.</comment></comment>


Ask HN: What Rails-style web frameworks are there? - <AUTHOR> I've looked for a reasonably complete list of full-featured MVC web frameworks that are similar to or influenced by Rails (I want to compare their design) but I couldn't find one. Here is the list I have compiled myself so far. Please suggest additions (or, in fact, deletions) if any come to mind. (Or, if you know of an existing list like that, please link to it in a comment.)

    ┌──────────────────────┬───────────────────────────┐
    │   Primary Language   │     Framework Name(s)     │
    ├──────────────────────┼───────────────────────────┤
    │ C#                   │ ASP.NET MVC               │
    │ Elixir               │ Phoenix                   │
    │ Erlang               │ Chicago Boss              │
    │ Groovy               │ Grails                    │
    │ Haskell              │ Yesod                     │
    │ Java                 │ Ninja, Play, Spring MVC   │
    │ JavaScript (Node.js) │ Sails.js                  │
    │ Python               │ Django                    │
    │ Scala                │ Play                      │
    │ Perl                 │ Catalyst                  │
    │ PHP                  │ CakePHP, Laravel, Symfony │
    │ Ruby                 │ Hanami                    │
    │ Tcl                  │ Woof!                     │
    └──────────────────────┴───────────────────────────┘
 <comment><USER2> This has already been posted by the same person at [https://news.ycombinator.com/item?id=11376894](https://news.ycombinator.com/item?id=11376894)</comment>