C# is now a better language than Java - <AUTHOR> http://brizzled.clapper.org/id/93 <comment><USER2> I guess I'll be the lone dissenting opinion and actually favor Java over C#.

Java has an extensive library of open source software, which makes it, as they say, more of a platform then a language. From hadoop, to tomcat, to jetty, to hibernate, to spring, to c3p0 (and many, many, many more), you have all the tools you'll ever need to do 95% of the coding work.

I definitely get the love around here for dynamically typed languages, but I've never been sufficiently motivated to switch to ruby. The whole philosophy of ruby, "convention over configuration" is applicable to ANY language, including Java. Java's EJB spec was monstrous and XML config file infested, but I've gone through many projects in Java without a single XML config file and following the philosophy of convention over configuration, and it's been great.

As to .NET, I would never use it. Never want to get in the business of paying for licenses, not just .NET, but it ties you to Windows server boxes and Windows development boxes.

<comment><USER3> The article made a point of distinguishing the comparison between Java and C# as languages, not between Java and .NET as platforms.

<comment><USER4> Be that as it may, that seems like an awfully artificial cop-out.

"Oracle's the best database ever!"

"It costs half a million dollars!"

"I made a specific point of distinguishing its technological merits as a relational database backend, not the dollars involved in purchasing it."

<comment><USER5> There's a lot of contexts where cost/benefit is not so much a cop-out as it is a more relevant point! (Not an Oracle advocate by any means!)

<comment><USER4> I agree. I meant that it is not an effective reply to its parent.

</comment></comment></comment></comment></comment><comment><AUTHOR> It's fashionable to say that Java is painful to use, and there is truth to the statement. However, when I started with it I had come off of a few years of C++ and loved that it reduced my pain exponentially. Like the new lover's quirky laugh, the 'nuances' of Java became annoying. It almost seemed as if with Java there is a threshold of productivity that the language itself imposes. I have since moved on to Scala/Clojure and again feel renewed. Maybe that is the natural progression of programming languages?

<comment><USER6> I see C# as a linear improvement on Java. In my eyes, it looks like this:

C++ --> Java --> C#

<comment><USER7> C++ has got nothing to do with neither Java nor C#.

<comment><USER8> The C# ECMA Standard ( [http://www.ecma- international.org/publications/files/ECMA-ST...](http://www.ecma- international.org/publications/files/ECMA-ST/Ecma-334.pdf) ) mentions it several times that one of the main design goals of the C# language was familiarity to C++ programmers. Indeed C# borrowed a considerable portion of its syntax and keywords from C and C++. I suppose the same is true for Java as well.

<comment><USER9> The C# standards only mentions C/C++ and not Java?!

>>Indeed C# borrowed a considerable portion of its syntax and keywords from C and C++. I suppose the same is true for Java as well.

It seems really weird to me when you sound like C# was an independent development? I'm not an expert on either, but...

Didn't Microsoft even try some (/a few?) Java-clone before C#? And then we have that "embrace and extend Java" thing Microsoft tried first.

Is the ... hrm, inspiration... from Java in C# "the love that dare not speak its name"? :-)

<comment><USER10> > Didn't Microsoft even try some (/a few?) Java-clone before C#?

J#[1]? J++[2]?

[1] <http://en.wikipedia.org/wiki/J_Sharp>

[2] <http://en.wikipedia.org/wiki/Visual_J%2B%2B>

<comment><USER9> Thanks! Next time I'll just check this document linked from the J++ 'pedia page myself before asking.

[http://www.ecis.eu/documents/Finalversion_Consumerchoicepape...](http://www.ecis.eu/documents/Finalversion_Consumerchoicepaper.pdf)

Page 16: _Kill cross-platform Java by grow[ing] the polluted Java market._ (Microsoft internal document.)

Etc etc, with references.

This document could be posted as a story on HN, if anyone wants lots of karma. :-)

We can say one thing for certain -- the "love" here is criminal and violent...

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> The SLW in me thinks: "Don't choose a language for its features, choose a language for its feature _building_ capabilities".

It reminds me of people who buy stackable shelves and drawers to store their crap and make some room. Sometime later, they buy vacuum-sealable bags to store things that they bought after they made some space. As time passes, they start digging for a new basement and add another floor as an attic to store more things.

Java vs C# programming sounds a lot like two hoarders of the kind described above, except one has enough room behind his La-Z Boy to recline to 120 degrees, while the other only gets to 100.

<comment><USER12> Indeed. Java and C# are some of the least flexible programming languages around. The problem, though, is that people like being told what to do. They don't want to wonder if they are implementing something correctly, they want to know that they are "following best practice". They don't want to invent their own features, they want to read a cool blog post about something "the experts" came up with and then try using that in their application.

This produces horrible code, of course, but since it sort of works and nobody knows any better, it's the norm. (Most programmers don't know programming. Why they want to be a programmer is beyond me, but it happens.)

The people that have a deep understanding of programming and know what they want to do and how to do it are not using Java or C#.

<comment><USER13> C#'s got lambdas, closures, generics, reflection, extension methods (weak form of monkey-patching), and anonymous types (I can't speak to Java, but it's got a lot of these as well). Can you please describe the flexible features C# is missing?

As for the programmers in those languages, I guess I'm one counterexample. My colleauges and I talk quite a bit about the "right way" to do things. We gripe a great deal about shortcomings in the .NET universe. I hate "best practices" (aside from trivialities like naming conventions), and prefer to evaluate practices on their merits. I've written frameworks of various sizes. I read cool blog posts to see what others are doing. Occasionally I'll try things to see if they'll work, not because some "expert" thought of it.

So, I'm at least one counter-example, and I know of numerous intelligent and erudite friends and bloggers who also fit this description. I wonder if you can perhaps provide some examples to support your claim that Java and C# programmers have no depth of understanding?

</comment></comment></comment><comment><USER14> Java is painful after experiencing .NET. I'm not sure this is really news though.

<comment><USER15> I wouldn't describe it as painful myself. But, I would agree with sentiment. Having spent 3+yrs working with Java and then moving to C# (2yrs+ dev) has been a pleasant experience. C# is great language with features like delegates, Indexers, Pointers and Unsafe Code (executed in an unsafe context) and constraints on type parameters.

In contrast, I hate the msdn documentation for C# and still have a soft spot for java documentation.And yes, C# v Java is not the same as JVM v CLR

<comment><USER16> _I hate the msdn documentation for C#_

Not sure if this is addresses your complaint, but MSDN's low-bandwidth formatted site makes it easier to work with.

Example: [http://msdn.microsoft.com/en- us/library/system.xml.xmlreader...](http://msdn.microsoft.com/en- us/library/system.xml.xmlreader%28loband%29.aspx)

Here's a link to a bookmarklet you can use to turn loband on: [http://weblogs.asp.net/jgalloway/archive/2008/08/30/msdn- low...](http://weblogs.asp.net/jgalloway/archive/2008/08/30/msdn-low- bandwidth-bookmarklet.aspx)

<comment><USER17> I think another thing I really hate about C# documentation is that it's merged with docs for other languages like VB.NET. It's a small thing but when I need to do something, I really don't want to be wasting time constantly filtering through stuff I don't need.

<comment><USER18> There is a language filter in order to display only language we want to see (in the standard version, not the low bandwidth one).

<comment><USER17> Thanks Rexxar - you've made my life easier. For some reason I've never noticed it before. Maybe it's because I use Firefox and the filter button looks really small on it.

</comment></comment></comment></comment></comment></comment><comment><USER17> Nothing new here. I've been working with both for years and I agree.

There is one thing that Java still has though, that I somehow doubt C# will have due to culture. Java has way more free or open source libraries. Yes, C# open source has gotten a little better over the years, but it's still not even close (it doesn't help that historically MS has been antagonistic towards open source even within its own products). What does this mean? With C# I have to keep re-inventing a ton of wheels, as opposed to Java where there are already thousands of existing well made ones for me to just grab and use.

<comment><USER19> I was a c# dev a year ago and whenever I looked for open source packages to address some requirement, I would always end up at codeproject. It always tended to be poor quality, never updated, etc.. Java has so much more but maybe things have changed over the last year.

<comment><USER17> I doubt the culture will change unless MS shifts its attitude towards open source even more (which is really doubtful). Until then, most people will only release quality stuff on a paid restricted commercial license.

</comment></comment></comment><comment><USER20> So if the JVM beats CLR but C# beats Java, why isn't there a C# compiler for the JVM?

I suspect that all language features of C# should be expressible in Java bytecode, but I have not thought about the details yet. If you know of anything in C# that would be unimplementable in terms of Java bytecode it would be interesting to hear about that.

<comment><USER21> Java bytecode is Turing-complete, so there's nothing explicitly preventing you from implementing many of the advanced features of C# atop the JVM. As the OP stated, alternate languages running on the JVM (such as Scala) already do this.

The problem is simply that most Java shops use only the officially-blessed Java language. Because Sun has always forced "certified" implementations of the language and platform to conform to their standard, there has been little room for innovation in the source syntax and bytecode format since the release of the first JDK in 1996. In the meantime, programming languages (and the programmers who use them) have moved forward, and Java has failed to keep up.

</comment></comment><comment><USER22> Yes C# is an improvement over Java. But, that isnt saying much with the plethora of cutting edge languages available today.

I still prefer Java, because C# is limited to the Windows environment,Mono isn't much help yet, and that is a huge limitation for me. Especially because Windows is not conducive to any serious systems programming - its ugly.

Another reason in favour of Java is the better open-source eco-system, more libraries and much more mature stuff.

C# has had the benefit that all new products/techs have - it leapfrogged.

</comment><comment><USER23> Excellent writeup, and he nails the fact that C# vs. Java is not the same as CLR vs. JVM.

<comment><USER24> Interesting. I don't think it's right to discount the CLR and focus on the language whereas the fact is that C# can not do certain things without support from CLR. [In fact, for each C# feature, I like to know whether it's a compiler trick or CLR feature.]

The biggest example I can think of is 'generics'. Java 'generics' are implemented using the compiler and JVM has no clue about them whereas CLR actually understands them and you get full reflection support for generic classes. Read this detailed article on Generics in Java vs C#:

[http://www.jprl.com/Blog/archive/development/2007/Aug-31.htm...](http://www.jprl.com/Blog/archive/development/2007/Aug-31.html)

I also like the utility of AppDomains supported by CLR.

Overall, I love .NET platform precisely because how all the modules (CLR, languages) are integrated with each other to give you a powerful tool set.

Other than JVM being portable, I don't know of a single case where JVM is superior to CLR. [Performance wise there is not a measurable difference between the two.]

<comment><USER25> There is no reason why you can't implement a C# compiler which uses the same compiler "tricks" as Java. In fact, someone has: <http://www2.mainsoft.com/content/port-net-apps-java-ee> (I've never used that software and can't say if it really works as promised, but I don't see why not)

Which side of the fence the compiler/runtime fence any given feature fails on is probably more a function of (human) resource pooling on the Microsoft managed languages teams than any technical constraints.

<comment><USER24> That's COMPLETELY incorrect. I have been following blogs of CLR team and C# compiler team members and they think very hard about whether a feature needs to be a compiler feature or in the runtime itself. If they are short on manpower, they don't implement a feature rather than implementing it at the wrong level.

<comment><USER25> Since you probably haven't been following my comments here on HN: I work at Microsoft on a very C#-centric team. I have good friends on, and direct working relationships with, the managed languages teams here at Microsoft.

The "wrong level" corresponds to the goals and direction of the greater managed languages team. If the C# team wanted to implement every feature without any regard for the Visual Basic or F# team, they could. Clearly, they aren't going to do this because it creates wasted effort, inconsistency between languages, and maintainence complexity. Moreover, implementing on the wrong level has impact on performance and the developer experience.

I didn't mean to imply that they do the wrong thing because they are short on man power. On the contrary, they do the _right thing_ because they are short on manpower.

Everything _could be_ a compiler trick, but that doesn't mean everything _should be_. The managed languages teams here at Microsoft absolutely kick ass; they know what they are doing.

</comment></comment></comment></comment></comment><comment><USER26> You know... C# may be less painful than Java, but, still, it took me 8 years to go through learning C++ after I had learned OOP with Smalltalk and done some programming with Actor (kind of Smalltalk with an ALGOL-ish flavor). I closed my first book on C++ seconds after I saw the overloaded binary shift operator being used to output text.

I see my early contact with Smalltalk made me picky and spoiled. Today, it makes not much difference if it's C#, Java or C++, they are all painful well beyond my pain tolerance.

It's like smashing one's toes with hammers of different sizes - I am pretty sure even a small hammer is painful enough.

</comment><comment><USER27> What do you mean, _now_ ?

 _annotations (though C# calls them "attributes")_

he means "Java added attributes, which C# had from day 1, but called them "annotations""

 _C# has many of the same features as Java ... generics_

Again, C# had this first, and still does it better since the bytecode is aware of them.

<comment><USER28> Java being more widely deployed has to worry about source and binary compatibilities between all the supported versions and thus for them, changing the bytecode would have been a painful decision.

As opposed to that C# did not have to worry about these things due to their limited deploy base and could freely change the language and/or the VM without worrying about backward compatibility.

That does not mean java is a better language than C# - its just that when Sun woke up and started adding features to the language, it was not easy.

<comment><USER29> Actually it does mean that C# is a better language _now_. If you are developing new applications then all the compromises that were made to shoe horn in new features don't matter to you. You just want something that works well and is simple. I think that C# has that on Java in a lot of respects.

<comment><USER28> No arguments there. But the rate at which C# is changing, what is stopping Microsoft from adding yet new features and breaking compatibility with previous language/VMs?

<comment><USER27> That's why there are generally several different versions of .Net installed side-by side.

</comment></comment></comment></comment></comment><comment><USER30> He's _just now_ realizing that Java is painful to use? Even PHP had me dreading the tiny bits of Java work I had to do when I last touched it in 2005.

</comment><comment><USER31> Language wise C# was than Java from day 1, but the C# toolset and build model are why I prefer C# over Java.

I have never had to spend ages trying track down a "class not found" error in C#. Nor have I had to deal with version clashes between libraries. And I might be biased because I develop mainly on Windows, but I think Visual Studio is a better IDE than Netbeans, Eclipse, IntelliJ or JDeveloper.

<comment><USER22> Really Visual studio is better than Intellij/Eclipse?!?

I can tell that you havent done enough programming in the Java world. Have you ever tried any serious refactoring or bothered analyzing your code. I didnt think so, you would have realized why visual studio sucks..

BTW, I program in both C# and Java all the time. Actually, I do about 70% C# and 30% Java. So your claims are crap.

<comment><USER19> I would not call all his claims crap. I disagree with his libraries statement but agree that visual studios is better than netbeans or eclipse.

I have used c# in vs.net for years up until a year ago and am stuck using eclipse now. I miss vs.net, not so much c#.

<comment><USER22> Hmm...try Intellij Idea and I think you might get over VS. Eclipse is a bit clumsy but really powerful. VS is basically a text editor with intellisense.

</comment></comment></comment></comment><comment><USER32> A good article, but I think the last line is the most revealing...

"compared to C# and Scala, it (Java) is almost painful to use..."

I think most of the Java community realizes incremental improvements to Java are at the point of severely diminishing returns, and Scala seems to be the next phase (I've heard people jokingly refer to Scala as Java 1.9... of course, this really isn't accurate, but it does capture what's going on in the Java world right now).

So in the future, I'm going to be a lot more interested in hearing how Ruby and especally Scala stack up vs C#...

</comment><comment><USER33> It's sad, but this isn't really an interesting argument any more these days. Even as a staunch java supporter, I wouldn't try to argue Java is in and of itself as good as C#. I'm more interested in how the 2nd generation JVM languages (Scala, Groovy, etc) compare with C# or the other options on .NET, and on the pros and cons of the whole platform and ecosystem.

For my money, no matter how good C# is, I'm not willing to be tied to an environment where the only full, modern implementation is tied to a single platform.

</comment><comment><USER28> A thing that I have wondered about: Although Java and C# are similar languages with very similar libraries and features, Java has migrated towards being used for server side and middleware programming. C# however has not gone in this direction even on Windows platforms. What is the reason? Wouldn't it be easy to write the equivalent of Tomcat, JBoss, EJB's etc. in pure C#?

It is surprising that some of the apache projects have .NET equivalents (lucene, log4j, ant) but some others dont........

<comment><USER34> Windows shops are vary of writing functionality, that might one day compete with Microsoft. Writing net Tomcat/JBoss could clash with IIS and future frameworks. Something like this happened with nant/msbuild and nunit/mstest. Commercial companies find it difficult to justify development of tools with high risk of being obsolete soon (something competing with MS product does not stand a chance in most Windows shops). Apache projects do not care about this risk.

</comment></comment><comment><USER35> C# is awesome because in a situation where you are using C#, there's a good chance you could use F# instead.

</comment><comment><USER36> I've always preferred Java to several languages (could be JVM influenced). I would still rather hack up an idea using Java vs C# or many other languages.

<comment><USER37> What are the other languages that you prefer Java over?

<comment><USER36> C#, Visual Basic, Ruby to name a few...

<comment><USER38> I guess I can understand the first two, but you'd take Java over Ruby? Really?

<comment><USER37> I agree about Ruby not belonging on that list. If anything my learning of Ruby (and then Rails) soured any remaining interest I had in Java development.

I'd really be interested to know why ramoq thinks Ruby is less suitable than Java.

I'll tell you one thing that absolutely stinks about Java: no collection literals. For all the time one spends in Java (and most other languages) dealing with arrays, lists, and maps, I always have to instantiate an object and manually add the elements to the collection. Heaven forbid you decide to nest one collection in another.

</comment></comment></comment></comment></comment><comment><USER39> I could tell the tipping point when I did a recent search for jobs. Even NYC which is still heavily Java is shifting to C#/WPF for client front ends.

<comment><USER40> And on the backend?

<comment><USER39> C\C++\Java backends mostly.

</comment></comment></comment><comment><USER41> The problem with language features is that people will actually use them. Much better for maintenance to have consistent code. Except for inner-classes, you always know what to expect when opening a Java file. Java's not as elegant as Eiffel or some of the functional languages, but its simplicity has value.

(No, I program mostly in C#)

</comment><comment><USER42> I am not sure if I feel it is better, but I do like them both quite a bit.

Sometimes I just feel like C# is just a little bit more pliable in a lot of ways compared to Java, just a little easier to make it do what you want it to do.

<comment><USER22> Windows usually undoes that benefit really fast...

<comment><USER42> you could use mono....?

<comment><USER43> I wish Mono would be even half as good as the .NET, I really do!!

I actually had great hopes for the .NET Compact Framework until the Dalvik came along...

</comment></comment></comment></comment><comment><USER44> This is not new, of course C# is the better language. What is the better environment is up for debate, but the C# language is better designed, friendlier, and more feature-packed leading to more concise code.

</comment><comment><USER45> The author has some pretty wide ranging experience. The value I got from the read is that his preferred coding languages are scala and c# for features he describes.

Thanks for the share fogus.

</comment><comment><USER46> Perl have <http://perldoc.perl.org/perldsc.html>

        * arrays of arrays
        * hashes of arrays
        * arrays of hashes
        * hashes of hashes
        * more elaborate constructs

</comment><comment><USER4> Mono notwithstanding, getting into C# culture and ecosystem isn't really feasible for pure-UNIX developers like me. Java takes the cake there.

<comment><USER47> why not withstand mono? I've worked on two open source projects that used mono and we've had a great time with it. It's portable, FOSS, runs fast, compiles (almost) everything, and has a strong and vibrant community.

The JVM is closed source, which is a non-starter for me. Why should I invest in a proprietary platform that is lagging in features and support?

MS won this battle, get over it

<comment><USER48> The JVM is GPLed.

</comment></comment></comment><comment><USER49> Ook is a better language than Java.

<comment><USER50> now that's just mean.

<comment><USER11> If he said "Oak", instead, I would vote him for being a predecessorist; usually, a bunch of people with better judgment than fadists.

</comment></comment></comment><comment><USER51> I dunno. What's it do that my turning machine with infinitely long tape doesn't do?

</comment><comment><USER47> "The JVM is robust, mature, fast, and (above all) portable."

mono is damn portable.

</comment><comment><USER52> Two dinosaurs stepping on each others' eggs.</comment>


Ask HN: Copying Y Combinator - If there's a right way, what is it? - <AUTHOR>

I'm writing a master's dissertation on startup incubator programs: Ycombinator and the rising tide of YC clones that are cropping up all over the world.  (TechStars, Seedcamp, etc.)
My goal is to provide a guide/framework that other people/regions/cities can use when starting their own Ycombinator-like program.  In a nutshell, I want to show how (or if!) Ycombinator's "secret sauce" can be translated into other schemes.  (More information at my blog post here: http://blog.jedchristiansen.com/2009/07/13/my-dissertation-ycombinator-its-spawn-how-to-do-it-right/ )  I plan on posting drafts and the final version of my dissertation for anyone to use (and criticize!) throughout the summer.
I think there are two interesting perspectives that have to meet in order for an incubator to be successful: what do the organizers/funders want as a result and what do the entrepreneurs want as a result?
What I'm hoping to get from the HN community is an answer to these questions: * What are the reasons you would apply and accept funding from YCombinator? * Are those reasons different for the other incubator-like programs and why?
If you'd like to discuss some of this privately, I can be contacted at jed [dot] christiansen [at] Gmail <comment><USER2> A bunch of these group have popped up but everyone I know will only apply to YC and TS... The other groups just don't have the credibility yet. I think techstars has done alright because it slid in as #2 and it has really gotten out front on the community side of things -- great job differentiating themselves from YC.

I don't think it will work to copy anything, I'm always going to give 6% to Paul Graham in the valley before I give 6% to Opie Taylor in Mayberry.

I think there might be an opening on the lower end of the market. Right now these groups are making total investments in companies around 50k (after program costs). That still requires a serious potential return to make a profit. So while they will tell you otherwise, they will rarely invest in an idea unless it has a very large potential market size. They will take 1% chance at a billion dollar return over a 50% chance at a million dollar return. Which leaves a decent number of smaller ideas on the table. The truth is that a company providing great software to dentist's offices will probably be ramen profitable before an idea like tipjoy -- but obviously the potential returns are a lot lower.

Intellectual capital is also a big problem. If you are ambitious and talented you have probably _already_ moved to a tech hub. That said...

I would buy a giant house and go Heaven's Gate style. Recruit local talent that hates their demeaning code-monkey job and sell people on the vision. They get free rent and a very small stipend. Dig up 10 people like this in a secondary town and now you've got a little community going... Hackers in these small towns are usually really hungry for people who "get it" so it's not about the money. Snag really sharp kids right out of high school or college and spend some time building into them in a really intense way. It's really talent development in a lot of ways, but it could potentially be a great funnel for getting people connected.

And just to soapbox for a second, post-industrial age-graded education is dehumanizing and bureaucratic -- although it's been great for making mindless factory workers. But it's not working anymore, so sooner or later we'll move back toward an apprenticeship model where people learn in a holistic relationship-driven context. That's what these seed stage funds are doing right now -- and it seems to be working.

<comment><USER3> Great points. I think the bigger point is that it's not so much the formula (how long the program is, how much do you invest, is it a seed fund or an incubator, etc.) as the people who are doing it.

I'd travel halway around the world for ten weeks with pg & a bunch of brilliant YC geeks. There aren't many venues that have the same appeal.

</comment></comment><comment><USER4> It depends what their goal is. Most of them seem initially to have the goal of improving the startup scene in a particular region. But, as they then discover, there's nothing regional about the seed funding business. Founders come from all over, and leave afterwards for wherever they get more funding.

The way to help a region is to be the place where they get more funding. I tried a thought experiment about that (<http://paulgraham.com/maybe.html>). The problem is, it would cost a lot more.

<comment><USER5> In that essay (and I think, in other places) you've mentioned Wufoo as being a very unique and exceptional case - what, besides being based in Tampa, is so unique about them? I've never met the founders, so this isn't meant as a challenge, just curiousity.

<comment><USER4> There are a couple things. One is how tight the founders are. Two of them are brothers, and the third guy is almost a third brother. So they trust one another totally.

The other distinctive thing about them is how committed they are. You can see it in everything from the design of their site to their reputation for customer service. They would be aghast at the thought of doing something in a half-assed way.

</comment></comment></comment><comment><USER6> I've said it before, but I don't understand why firms trying something YC-like don't try to differentiate themselves more. The _accelerator for mobile_ , the _accelerator for B2B / SaaS_ , etc. It would seem easier to differentiate yourself from YC along industry rather than geographic lines (assuming you're not crossing a national border).

<comment><USER7> This is exactly what I thought when reading the OP's post.

A Y-Combinator clone that specialized in industrial hardware or medical devices. Man, my brain would be in warp speed. I work for a medical device manufacturer but for all my experience, would never think of doing a product in this field because of the huge financial and regulatory hurdles. If yc-type guidance were available, I'd be going over ever problem I know of in this field to figure out if I could do a startup to solve it!

</comment></comment><comment><USER8> One difference that deserves more attention is that YC comes out of hacker culture while the clones don't; they've been started by people who have had business success but are not hackers, who tend to look at YC as a business model and not as the cultural experiment it also is. As I imagine it, the founding insight behind YC isn't so much "let's make a bunch of seed-stage investments" as "let's hack the economy". That, to me, is a fundamental difference. It's also precisely the sort of thing that most non-hackers would overlook.

Does this matter? My guess it is it matters a lot, because identifying good hackers and advising them are two of the most important things that YC does. These skills are not common. YC have them because they are hackers themselves. This also lends a dog-whistle aspect to the whole endeavor. To anyone who's part of the culture or has the mindset, PG's essays and various other things about YC are instantly recognizable and act as a beacon. This feeling of "they're one of us" is precisely what I miss in the clones.

With obvious exceptions, the economic fate of hackers has traditionally been in the hands of people who are not like them and do not understand them. A seed-stage micro-investment mentoring fund started by the one type is not likely to work out the same as a similar-looking fund started by the other. If this were gardening, good hackers might be weird-looking plants that are commonly mistaken for weeds. An unskilled gardener is likely to make two mistakes: either rooting them out (i.e. passing them over in favor of other, perhaps more businessy-looking species) or applying the wrong fertilizer etc. so they fail to thrive (i.e. not knowing how to work with them or help them grow).

One thing that follows from what I'm saying comes close to a prediction: if the essence of YC has more to do with a new investment model, then copies of that investment model should follow a similar course. But if it has more to do with amplifying the economic value of hackers, then you'd need to look for copies of _that_ , and as far as I know there aren't any.

Incidentally, most hackers probably wouldn't be interested in starting a clone. They'd want to find their own angle instead. I wonder whether Marc Andreesen's new fund isn't closer to YC in spirit.

</comment><comment><USER9> It's an interesting question, and I'd love to see your dissertation after it's done. Thanks for being willing to post drafts, etc...

It seems that a lot of cities/regions want to start tech incubators as a means of boosting the local economy. A number of cities that I've lived in want to start a "Silicon Prarie" or a "Silcon Forest" or a "Silicon FooBarBaz" in their neck of the woods because successful tech businesses produce a lot of good jobs and tax revenues. So, the city starts an incubator, promote their new downtown as a tech hub, and hope for technology companies to spring up and boost the local economy.

I believe that one of the reasons that Y Combinator succeeded was because it wasn't about boosting tech companies in regions, it was about funding startups. PG and Co. set out to hack the economy by seed funding crap loads of startups. So, to that end, they started funding startups in the locations that were best suited to that: Boston and SV. They then went on to localize primarily in Silicon Valley because they thought it was the best move for their startups. ( and they were sick of being bi-coastal )

The difference in those two motivations, is I believe a watershed between the wins and the fails. YC has done what's best for their startups because that's their primary goal. The vibe I get is that a lot of other incubators try to do what's best for their region and are therefore conflicted.

<comment><AUTHOR> Interesting, and I agree that more and more YC clones are coming from outside the Valley. I guess the question is if the city/region has enough expertise to make a clone successful. Perhaps if focused on a more vertical field it has a better chance of success?

<comment><USER9> I've lived in 6 cities in the US: Minneapolis, Chicago, Providece, Los Angeles, Fresno and now SV. I've also spent significant time in Dallas, New Orleans and Toledo.

For me the issue is culture.

Chicago, there is a high tech community, but it is generally focused on helping the other industries in the area function. Chicago also tends to be kind of a jock driven town, and tends to scares geeks underground IMHO.

Providence, because of RISD and Johnson and Wales tends to be an arts/food driven town. Players from Brown don't tend to stay around long enough to influence the culture too much. They're too busy figuring out how to get into Harvard or Yale Grad school. There also tends to be a strong current of complacency among the locals that makes it hard to innovate technologically. The biggest tech firm in Rhode Island is GTech, a lotto machine maker.

LA is all about the movie and music industry (and a little bit about aerospace). There are plenty of geeks in LA, but they all tend to serve the larger interests of the movie, music and aerospace industries. A lot of geeks I ran into would have been interested in developing their own VFX shop, but you have to have a _lot_ of connections to make that happen. LA is also run by pretty people. And, that makes it harder on geeks, IMHO. It made it hard for me, and I moved after a year and a half.

Fresno is all about farming, it's really hot, and I'm shocked I lasted a year. That's all I'll say.

SV on the other hand is steeped in technology and startups. My day job is as a ER nurse, and in the first year of being here, 3 people at the hospital offered to connect me with investors. I started the hackers and founders meetup ( www.hackersandfounders.com) a year ago, and now there's 350 people on my mailing list, and we have 20-25 people show up every 2 weeks to talk tech and startups. It's just in the air here.

I think that SV offers a much better ecosystem for startups than the other towns I've lived in my several orders of magnitude. There's already water, carbon, and oxygen. Silicon Valley's orbit is in the green belt of the startup sun.

Trying to do the same thing as YC in a different area of the country would require a lot of terraforming to be able to support a startup ecosystem. It's possible, but like colonizing Mars, it's going to be a lot more expensive to support an ecosystem there than on earth.

If I were going to recommend starting a technology company in another area, I'd definitely look at the strong industries in that area. If I were starting a YC clone in Detroit, I'd fund manufacturing technology startups, and perhaps robotics companies. If it was Dallas/Houston, I'd fund petroleum tech or energy startups. If it was San Diego probably biotech. LA, I'd focus on more media oriented startups. Fresno, or the rural midwest, farming automation technology.

Startups outside of Silicon Valley could have a competitive advantage if they can focus on building technology that supports the local industry. That way the networking that naturally happens can strengthen their business. I talk with a lot of hackers here that are interested in building tools for specific businesses or industries, but they have problems meeting people that work in those industries and aren't geeks. A seed fund could take advantage of that.

</comment></comment></comment><comment><USER10> As a complete outsider I can tell you that, in my mind, the _only_ thing separating Y-Combinator from the others you mentioned are Hackernews and PG's essays. Both of which are of such excellent quality that I would apply here before anywhere else. That's it, I don't know anything else about the people behind the program.

<comment><USER11> I would agree with you but recently I have really started to like the TechStars program. Why? Because of the impression given to me from their recent videos about the start-ups and the program that have appeared this time. The videos show how the program works, the openness, the mentoring, the city (Boulder not Boston), the community/spirit there, what the founders are like. When TechStars first started, I was thinking 'they have no chance, YC is the only place to be'; but now, I really respect what they have going on there, and wouldn't mind going there.

YC seems a bit more closed. Outsiders can't gage what it is really like except from a few vids here and there and the comments on HackerNews. Plus, with the increased popularity of HackerNews, it is quite difficult to track the comments from YC company founders. Of course, when someone gets in then they probably don't care any more, but it's always nice to be open and show people what you're all about. The same goes for all the other programs.

The point: if you're starting a new program, especially in a traditionally non-tech area, it is best to be open and show what the program (including location) is all about. It's just good marketing.

</comment></comment><comment><USER12> In Pennsylvania, the "Y Combinator clones" AlphaLab and DreamIt Ventures are funded by the state of Pennsylvania (and a DreamIt partner is running for Congress!). AlphaLab is an overt incubator run by a larger early stage investment group and DreamIt is more of a direct YC Clone. The goal of the money they are given is to create jobs. Their motivations get more complicated when the taxpayers are footing the bill.

Probably the most common flaw in cloning Y Combinator is to make an incubator investing in micro seed magnitudes. Y Combinator is not an incubator; it's a micro seed stage fund. <http://seedfunding.weebly.com/>

<comment><AUTHOR> I didn't realize AlphaLab and DreamIt are funded by the state. But as part of my project I hope to recognize the different types of funding sources & people that are starting YC clones. I've even heard about companies that are looking at running small programs like this. I agree that the motivations are complicated, and that's what I want to explore.

Interesting note about the funding. I was talking to a VC about this and while he wanted to support a similar type of program locally, he was very hesitant. Mainly because if he chose not to follow-on with funding, he would likely be killing the startup before it even really got going.

<comment><USER12> > Mainly because if he chose not to follow-on with funding, he would likely be > killing the startup before it even really got going.

Good point. I'm pretty sure pg said someone similar on this site at some point.

<comment><USER13> That's true, but the chances of finding follow up funding are larger anyway if you already have a seed fund backing you.

The one things most VC's are scared of is being first (and the other thing is having missed an opportunity). It's a fine line between those two...

</comment></comment></comment></comment><comment><USER14> Good idea. It would be great to see a lot of incubators popping up, as it can have a significant impact on the overall economy.

It is not the funding that is the main reason for applying. Although some small amount of money is great to cover living costs so that you can devote full time to your project, it can be handled differently. What I think most of the people here are interested in is the post funding period - getting big investments and connections through those that already did the talk and walked the walk. Note that I am not referring to YC only, but also to all those that YC helped or involved. There is a lot to learn from such condensed entrepreneurial community.

However, don't idolize YC. They are not best. They are not even the first ones to do so. They are just best known and publicized.

I would highly recommend doing a criticizing and constructive thesis. That is - seeing the shortcomings of YC and suggestions on how to do it better. Your question to HN should be how to do it better?

Such thesis is benefiting to all then, YC and other that are copying the model, but most of all - us :)

<comment><AUTHOR> My instinct is that I agree. But YC seems to be the top-tier choice for companies applying to the whole group of incubator-type programs. Is that because YC is seen as a better/bigger step toward connections and further investment?

<comment><USER12> It's not just that YC is seen as better; by the numbers alone they offer the best outcomes of any of the micro incubators/micro seed stage funds.

<comment><AUTHOR> I would love to be able to verify that, though I agree it looks to be true. My dream would to get a fairly comprehensive list of startups to come from _all_ of the different programs, and see which of those are a) still in business, b) received follow-on funding, and c) exited.

I know PG has these stats for YC, I'm just curious if he would share.

<comment><USER15> those stats wouldn't be hard to acquire. There are various lists of all the YC winners. Love to see a comparison of YC vs Seedcamp.

<comment><AUTHOR> I'm hoping to compile them; I just know that PG keeps _accurate_ records. :)

</comment></comment></comment></comment></comment></comment><comment><USER16> The right way is to _not_ copy it. Learn from it, see what worked and what didn't and adapt it to your specific goals.

<comment><AUTHOR> Exactly. I'm hoping to write a generalized framework to help guide others in what's important and what's not, and _how_ to adapt it to specific goals!

</comment></comment><comment><USER17> I love incubation. YCombinator and others FTW. Although you need to understand that there really isn't a secret sauce. Just like there is opinionated software/frameworks (rails) there is opinionated venture capital.

Ycombinator funds companies based on certain principles. Paul Graham and co. pick ideas based on what they see fit. They have built relationships with successful entrepreneurs,VCs, angels and other outfits based on their judgement which has lead to their some success. They do things a certain way and you/others should not try to copy them.

I think you can definitely try to tell their story and motivate others. You are not going to be able to make other people create or build another Ycombinator.

</comment><comment><USER18> Too bad y2combinator[1] is no longer around. I'm sure they could help you :-)

1- [http://web.archive.org/web/20070705045529/http://y2combinato...](http://web.archive.org/web/20070705045529/http://y2combinator.com/index.html)

</comment><comment><USER19> * What are the reasons you would apply and accept funding from YCombinator? *

If I applied that's because of

\- Place: I live in north-africa, so US would be better for business.

\- Support: I can't handle tax/company issues and papers myself, if i hire a lawyer, it'll cost a lot.

\- Promotion: More odds that I'll get better investors.

</comment><comment><USER20> I'm working on a project right now. The amount of money that YC would invest in my project would be helpful, but not game changing at all (since I have savings).

The only reason I would consider applying is to have access to the resources and experience that PG would be able to share via his contacts and other YC alums.

</comment><comment><USER21> This question is probably as hard and as interesting as "what makes entrepreneurs entrepreneurial"

Cant wait to see your results!</comment>


Sergey Brin's Home Page from the Late 90s - <AUTHOR> http://infolab.stanford.edu/~sergey/ <comment><USER2> Archive.org's first snapshot of google.stanford.edu: [https://web.archive.org/web/19981111183552/http://google.sta...](https://web.archive.org/web/19981111183552/http://google.stanford.edu/)

<comment><USER3> > Index contains ~25 million pages (soon to be much bigger)

he was not wrong

</comment></comment><comment><USER4> In the late 1990s you weren't a real CS grad student unless you wrote some kind of tool for dealing with LaTex and apparently Sergey is no exception.

</comment><comment><USER5> So many broken links now!

<comment><USER6> I wonder if there will ever be monetary value in non-broken links... which links would you invest in?</comment></comment>


Wall Street Is Sharpening Our Nanoseconds - <AUTHOR> https://www.bloomberg.com/view/articles/2018-07-02/wall-street-is-sharpening-our-nanoseconds <comment><USER2> Something that confuses people is that trades don't happen that often. Batch auctions don't change this. You still need to decide who gets priority in the auction.

If you do time priority then it's not that different from currently existing American exchanges.

If you do size priority then it's not that different from currently existing American exchanges.

If you do random priority then it's asymptotically equivalent to size priority.

Batch auctions just make it harder to quote ETFs and other products whose prices depend on prices of other products. It's likely a net loss.

<comment><USER3> You claim that batch auctions are the same without addressing the arguments in the article, namely that (1) HFT is unfair to smaller traders, and (2) HFT is an arms race where the costs (materials, labor, and brainpower) exceed the benefits.

Here's the fairness argument: a severe negative report comes out about stock X. In a fair world, after the price updates, every investor loses the same per share of X that they held. In the real world, HFT can sell or short X before others can react, resulting in a net transfer of wealth from investors to HFT firms.

<comment><USER4> Your argument presupposes that there is some constant per-share price to be paid for a piece of bad news, when in fact it is the function of the market, through trading, to arrive at a consensus valuation for that news.

<comment><USER3> I can rephrase without that assumption. The argument is that high speed traders are able to trade before others can receive or react to information. The time advantage therefore translates to an unfair information advantage. Compare insider trading, which we make illegal because it is unfair, even though it improves the price signal.

The direct benefit of the real-time market vs. batch auctions is that pricing information is updated faster in the real-time market, but is there any need for microsecond resolution pricing?

<comment><USER2> > Compare insider trading, which we make illegal because it is unfair, even > though it improves the price signal.

Insider trading is arguably illegal because you're misappropriating company information for your own use. There a few other technical points, but they can be ignored in a casual conversation.

This applies if the CEO told you something that they shouldn't have or if they told you something in confidence and you abused that trust.

Trading on information that others don't have is generally legal and investors do it to a much greater extent and to much greater profit than HFTs.

> The direct benefit from HFT is that pricing information is updated faster in > the market, but is there any need for microsecond resolution pricing?

The big direct benefit comes from maintaining fair prices for ETFs and other products whose prices depend on other products.

Furthermore, "microsecond" pricing is a very natural system. HFTs and other market makers put out passive limit orders whenever they want. Investors and other aggressive participants send marketable (usually limit) orders if it's the price that they want.

It's the far more complicated batch auctions that need to justify their existence.

<comment><USER3> The SEC says that insider trading is illegal because it "undermines investor confidence in the fairness and integrity of the securities markets".[1]

[1] [https://www.investor.gov/additional-resources/general- resour...](https://www.investor.gov/additional-resources/general- resources/glossary/insider-trading)

 _Edit, previous response:

Fairness is the "straightforward", "textbook answer" as to why insider trading is illegal. Misappropriating company information" isn't a great justification because insider trading is still illegal even if a company explicitly allowed employees to trade on nonpublic information.

[1] [https://blogs.wsj.com/law/2011/10/26/why-exactly-is- insider-...](https://blogs.wsj.com/law/2011/10/26/why-exactly-is-insider- trading-illegal/*)

<comment><USER2> Just to be clear, I'm disagreeing with you because I think you're wrong about the world as it is not because our interests are opposed. I would have far more money if the US had a super complicated batch auction system and everybody could only trade on public information. It would probably only have a tiny, barely noticeable, negative effect on your life in the form of higher spreads for ETFs and various index products.

> "Misappropriating company information" isn't a great justification because > insider trading is still illegal even if a company explicitly allowed > employees to trade on nonpublic information.

I am not sure why you are bringing up this specific and very complicated example. Has this been tested in court and I'm just not aware of it? I don't even see how a company could allow its employees to engage in insider trading without it being misappropriation. The company has a responsibility to its shareholders. At a minimum, this policy would have to be disclosed to investors.

Investors very frequently use data that is not publicly available. Sometimes it's mosaics that they've put together from smaller pieces of information that are not public, sometimes it's body language of executives in private meetings to which the public does not have access, sometimes it's satellite images, sometimes it's information from IR, and sometimes it's something else. None of this is illegal without additional clarification.

<comment><USER3> You're right, it was a poor example and I have deleted it. Perhaps we can agree that fairness would be an adequate justification for making insider trading illegal, and by analogy, that it would be an adequate justification for switching to batch auctions. If so, you have the burden of proof to show that the benefits of microsecond resolution outweighs our considerations of fairness.

<comment><USER2> > Perhaps we can agree that fairness would be an adequate justification for > making insider trading illegal

I don't think that we agree on this. The way that I see it, investors always try to leverage information asymmetry and I don't see how you could realistically outlaw it.

That's what makes HFT so hard. The people who are trading against you inherently know more than you do. They've talked to the companies, they've researched them, etc. Meanwhile HFTs stand by willing to buy and sell just below and just above mid market without any of that information.

This is also why HFTs are willing to pay for retail order flow. At least you know that the retail orders probably don't know more than you so you're able to capture a greater fraction of the spread.

Of course retail orders are a small fraction of all orders and an even smaller fraction of orders on the exchanges.

<comment><USER3> I just found the SEC's official justification and amended my original comment above. I don't think you're going to win an argument against the SEC.

<comment><USER2> You may be interested in reading Salman v. United States [1]. It's a dense read so here's a news article [2] that I'll quote.

> The justices rejected claims of defense lawyers who argued that there was no > crime because no money exchanged hands between the insider and the stock > trader.

> Instead, the court said exchanges within a family are like gifts and have > value, even if no dollars are paid.

Sounds a lot like misappropriation is the concern and not merely having access to information that others don't.

This is a case that's widely seen as making it _easier_ to prosecute insider trading.

[1] [https://supreme.justia.com/cases/federal/us/580/15-628/opini...](https://supreme.justia.com/cases/federal/us/580/15-628/opinion3.html)

[2] [http://www.latimes.com/business/la-fi-supreme-court- insider-...](http://www.latimes.com/business/la-fi-supreme-court-insider- trading-20161206-story.html)

<comment><USER3> True, it's easier to prosecute insider trading as a breach of fiduciary duty to the company. But why were insider trading laws passed, and why is insider trading prosecuted? The SEC answers that "moral imperatives have driven the development of insider trading law in the United States."[1] The prosecutor against Salman, Preet Bharara, stated that "today's decision is a victory for fair markets and those who believe that the system should not be rigged."[2]

[1] [https://www.sec.gov/news/speech/speecharchive/1998/spch221.h...](https://www.sec.gov/news/speech/speecharchive/1998/spch221.htm)

[2] [https://www.nytimes.com/2016/12/06/business/dealbook/supreme...](https://www.nytimes.com/2016/12/06/business/dealbook/supreme- court-insider-trading.html)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Has anyone considered the effect of general relativity on syncing clocks on a nanosecond level over large areas?

I previously read about this topic and it didn't seem to occur to the author (who may have been Levine in fact) that basic physics (not that I'm that knowledgeable about it) puts a limit on how finely you can order physically separated events.

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

<comment><USER6> No, there is only a limit on an order of events that holds across all possible reference frames. If you define a fixed reference frame, there is no problem. Presumably, they define the same reference frame as whatever UTC uses.

<comment><USER7> The reference frame is the location of the server. Whoever is closer to the server has an advantage because someone half way around the world will take an extra 50ms or whatever to submit their order.

<comment><USER5> Syncing clocks implies to me that you're not just executing trades in the order of arrival. You're trying to determine which trade "actually happened" first. Hence the doubt I had about the relativity of simultaneity. Incidentally, I think I was mistaken about "general" relativity being applicable. This is probably just a "special" relativity problem.

<comment><USER7> That's not how it works. First to get their order to the server wins.

</comment></comment></comment></comment></comment><comment><USER8> > If people want to trade stocks every hundredth of a nanosecond, why not let > them?

> but if that meaningless-seeming competition between high-frequency trading > firms helps subsidize basic research to improve our understanding of time > itself, isn't that kind of cool?

Seems to me this guy is really struggling to reach the conclusion his editor wants..

<comment><USER9> Not really, that's the general writing style of Money Stuff (which is what this column is).

<comment><USER8> How on earth did you interpret my comment as about "writing style"?

</comment></comment></comment><comment><USER10> Related discussion, from a week ago:

[https://news.ycombinator.com/item?id=17429625](https://news.ycombinator.com/item?id=17429625)

</comment><comment><USER11> Personally I think this adds no value to the social goodput of trading: its not market informing of real movement, its profit (rent?) seeking in dis-equal access to service.

I understand the profit motive. I just don't think that for trades, informing community of value (prices, derivitives, futures) that moving to femto-seconds is adding value.

"I made a lot of money because I have faster komputer than u"

<comment><USER12> Theory is the faster the market is, less the room for arbitrage, and better for the day trader. HFT has certainly narrowed the spread.

Big problem currently is moving large block (institutional) trades without affecting the market. Thats why a good chunk has moved to dark pools. (I work for a dark pool ATS).

<comment><USER13> Day traders are a different form of arbitrage.

</comment></comment></comment><comment><USER14> Eventually I have to believe even the financial institutions will decide that the current system is neverending, and they'll work out a system of simultaneous bidding. There's no reason why there can't be a tick-tock where trades queue until then next tick, and then are dealt with according to a fair algorithm of some sort.

<comment><USER15> I know people may down vote you, however, a new kind of auction system to slow things down could potentially make the market fairer for all participants. The average guy will probably never be able to compete with the big boys that are collocated in the same data centre as the exchange with full access to the order book.

</comment></comment><comment><USER16> If stock exchanges were slowed down (say discretized to a second) would faster shadow exchanges just pop up?

<comment><USER17> Why would anyone but high-frequency traders want to use it? And in that case, HFT would be on aggregate a losing proposition.

<comment><USER18> > Why would anyone but high-frequency traders want to use it?

Substantially lower spreads, possibly.

</comment></comment></comment><comment><USER19> In one hundredth of a nanosecond, light travels 3 mm.

<comment><USER13> a nanosecond is a foot; a picosecond is a grain of ground pepper. -- Grace Hopper.

[https://vimeo.com/214855845](https://vimeo.com/214855845)</comment></comment>


Addressing the address issue - <AUTHOR> http://jonathanmarvens.com/blog/2012/11/26/addressing-the-address-issue/

<comment><USER2> How about a single unconstrained text area? Do you really need to break the address up into lots of little bits? If so, why? Because you have different costs / taxes for different states / countries? Fine, have separate fields for those, but otherwise, what's the benefit?</comment>


Please consider not adopting Google WebComponents - <AUTHOR> https://forum.palemoon.org/viewtopic.php?f=1&t=24004 <comment><USER2> Some context that could possibly make the reasoning behind this more clear.

Pale Moon is a fork of Firefox. The purpose of the fork was to retain support for various legacy technologies that mainline Firefox was abandoning, such as NPAPI plugins, XUL/XPCOM, and old-style themes.

If keeping up support for those old technologies _and_ keeping up with the latest improvements in Firefox sounds like a lot of work for a small team to tackle, that's because it is. As a result, Pale Moon doesn't include all the performance improvements that shipped with Firefox Quantum, along with various other "modern Firefox" improvements like not running all tabs in a single process. (Pale Moon last rebased itself on mainline Firefox circa Firefox 52, which shipped three years ago.)

My suspicion is that, when Pale Moon asks you not to use Web Components, they're doing so because their engine is old, it doesn't have the necessary muscle to deal with things like shadow DOM in a performant fashion, and they don't have the resources necessary to give it that muscle. They could rebase onto a newer version of Firefox that _did_ have that muscle, but they'd lose support for all the legacy technologies they forked away to keep in the first place; and re-implementing all those APIs on their own would be just as prohibitively large a project as tuning up their engine on their own would be. So, in the absence of some huge population of skilled developers volunteering to pitch in for free, their project is kind of stuck between a rock and a hard place.

<comment><USER3> Well, if I as developer would realize that i pose my users under certain risk and i am unable to do anything about it, then the only logical and morally correct option would be, to tell that my users and cease operation.

Everything else is selfish and delusional!

<comment><USER4> > and cease operation.

I hate when that happens. I choose the applications in my workflow for specific reasons or for some unique value that they offer. It's one thing when a developer moves on from a project and leaves it in an unfinished state. It's an entirely different story when the developer basically throws up his hands and tells their users they give up because xxx is too hard. Just tell me what's wrong and let me decide! Then if your userbase crashes you can make the decision if you want to continue or not. Deciding for yourself what's important to me is extremely frustrating as a user. Kinda like when Microsoft deprecated the SmtpClient Class in .NET and told people to use MailKit instead.

So now it's taboo to use the perfectly good Microsoft class which only takes 6 LOC to send an email and everyone is crapping their pants trying to make 300 LOC mailkit scripts to perform the same task. Because some clown at Microsoft got a hard-on over MailKit and decided to burn their own house down.

<comment><USER5> .NET Core? We are still mostly on .NET Framework land and happily using SmtpClient.

</comment></comment></comment></comment><comment><USER6> What a weird polemic. "With Google WebComponents here we mean the use of CustomElements and Shadow DOM, especially when used in combination, and in dynamically created document structures (e.g. using module loading/unloading and/or slotted elements). ... WebComponents used "in full" (i.e. dynamically) inherently creates complex web page structures that cannot be saved, archived or even displayed outside of the designated targeted browsers (primarily Google Chrome)."

It's a web API. Browsers implement it. Including Safari and FF. If the argument is that it's hard to implement and makes it harder for new browser implementations, the same could be said of new CSS features, other APIs like Web Audio, etc. Trying to brand Web Components as Google-only may have worked in the v0 prototype days in like 2014, but it's factually not the case today.

<comment><USER7> Like it was said already... a lame excuse for "We can't successfully implement it, our browser is becoming incompatible with a large part of current web, so please do not use it to make us happy"

Without doubts - this will be Pale Moons final run - as the makers are fully unable to implement complex features on their own, as they do not have the tiniest bit of knowledge how to implement medium or highly complex Ecmascript features.

This link explains everything with all necessary details - also shared before: [https://www.reddit.com/r/palemoon/comments/fk4fnl/attention_...](https://www.reddit.com/r/palemoon/comments/fk4fnl/attention_palemoon_is_going_to_die_most_likely/)

<comment><USER8> Nonetheless, its still mildly concerning that smaller players in the browser space are finding it difficult to keep pace with all the new APIs being introduced to the web these days. Even Microsoft sort of gave up and killed their browser engine in favor of a Chromium fork.

It's a tricky situation with no obvious solutions. The Pale Moon dev's plea to slow down isn't going to work; devs _want_ these new features and they're not going to stop using them just because a smaller browser developer with no significant market share can't keep up.

There is, perhaps, the beginnings of a solution with the Extensible Web Manifesto[1], which aims to shift the focus of browsers from implementation of many high-level features to instead focus on smaller, simpler low-level features which high-level features can then be built on top of. (Though ironically, web components are a part of this movement.) CSS Houdini[2] is one such feature which seems like it might be relevant in this specific situation (though whether it's helpful I have no idea; in the short term I suspect it might just translate to a lot more work).

[1]: [https://github.com/extensibleweb/manifesto](https://github.com/extensibleweb/manifesto)

[2]: [https://developer.mozilla.org/en- US/docs/Web/Houdini](https://developer.mozilla.org/en-US/docs/Web/Houdini)

<comment><USER9> > devs want these new features

Devs wanted Flash and real-player plugins pack in the day too. They wanted ActiveX plugins too. No-one else wanted them and it was ultimately the downfall of IE.

> Microsoft sort of gave up and killed their browser engine This will be the > downfall of chrome. Google will ultimately be fined under anti-trust, chrome > funding will dry up and browsers will stop supporting these absurd features. > Have a nice time rewriting all your webcomponents in javascript in 5 years.

<comment><USER10> > Devs wanted Flash and real-player plugins pack in the day too. They wanted > ActiveX plugins too. No-one else wanted them

The idea that users didn't want Flash is laughable. It was enormously popular and enabled all kinds of multimedia presentation that the web couldn't come close to rivalling.

> Have a nice time rewriting all your webcomponents in javascript in 5 years.

Web components are JavaScript. And it's a standard agreed upon by all the major browser manufacturers. They aren't going away, no matter what happens to Google.

</comment></comment></comment></comment></comment><comment><USER11> By some strange coincidence maintaining a working web browser became a task that only Google can do "properly". Microsoft gave up. Firefox is struggling. Doing something from scratch is insanity.

So here we are. A website choke-full of people who constantly post about modulariy, protocols and advanced type systems, yet sheepishly accept that a browser with its zillion unrelated features is a giant, tightly coupled blob that cannot be tackled by anyone except an ubercorp like Google.

<comment><USER12> How do you mean that Firefox is struggling? It is not my experience this is so. Everyone around me is ditching Chrome for Firefox.

Firefox is also ahead in a few areas too: containerisation & privacy. It's also now the default browser on a few oses.

To me this does not indicate struggling at all.

<comment><USER13> [https://gs.statcounter.com/browser-market- share](https://gs.statcounter.com/browser-market-share)

Chrome: 65.54%

Firefox: 4.58%

Perhaps your sample size of people around you is too small?

<comment><USER14> You might well be right, but I, along with lots of other firefox users run extensions like NoScript which blocks 3rd party javascript unless explicitly whitelisted, so I expect a much higher proportion of firefox users probably don't show up on analytics packages (which is how statcounter stats are generated). DuckDuckGo Privacy essentials plugin also blocks statcounter, as I'm sure do many other privacy related plugins.

Even if you are a firefox user who doesn't use third party plugins, firefox itself will block statcounter if you have enhanced tracking protection turned on. I couldn't find a similar setting in Chrome.

<comment><USER15> Unless you're spoofing your User-Agent string, servers still know what browser you're using. You don't need to be running client-side analytics scripts for browser market measurements.

<comment><USER14> Sure, but that's not how statcounter or most advanced analytics packages work.

Your browser doesn't make a request to the analytics server if you're blocking it, so while the content server might know the user agent, the analytics server generally doesn't.

</comment></comment></comment></comment></comment></comment><comment><USER16> Disclosure: I maintain an open source web component library.

This is a strange take on what I think the author is fighting against: a less open web platform. What confuses me is how the adoption of Web Components will somehow make things worse than they already are. Take a look at any contemporary web framework and you'll see there's little overlap in compatibility or portability -- sometimes even between versions of the same library!

I've seen first hand how difficult web components can be, but they're still a better solution than trusting the foundations of the web to the teams at Angular or React. In my opinion we need an API that lets young developers start their web apps with plain HTML/CSS/JS without experiencing into the same decades-old issues that created frameworks in the first place. How should an intermediate developer beging organizing their CSS? Or importing helpful libraries? Or even something as simple as making a reusable HTML template without spending any time in Webpack?

The truth is that we don't have easy answers for these aspiring developers, and we won't get any sympathy from them by demanding the web return to it's document roots. I think Web Components can solve all these issues with some guidance from the community. The platform is ready and so are we.

<comment><USER17> I am inclined to agree with this comment indeed. Having had to learn a lot about these things recently (and trying to stay away from frameworks), it is quite difficult to not feel 'boxed in' by the rules imposed by React, Vue, etc. I feel as though one is encouraged to learn a framework instead of the basics. Having learned the basics, I can now see why there are frameworks, and what their uses are, but often I wonder whether people decide to do something in [x] framework to make their work sound cool, before even knowing what it is they are building.

</comment></comment><comment><USER18> I don't get it. The ability to source some js and then add a <custom-element> wherever you want just like it was a built in element is one of the best things to ever happen to web design. This is what we should have had ten years ago, not the post-jquery framework madness we have now.

I do think it was dumb that <style scoped> got removed though.

<comment><USER19> Is it okay for you if you save a webpage but no contents are saved in fact? Do the test and save in HTML (with the native "Save as" feature) this page [1]. The saved page will be almost empty because it's made of web components. This is an example of issue that should be fixed.

[1] [https://bugs.chromium.org/p/chromium/issues/list](https://bugs.chromium.org/p/chromium/issues/list)

Edit: This might be fixed, see my first post [https://news.ycombinator.com/item?id=22604632](https://news.ycombinator.com/item?id=22604632)

<comment><USER20> Are you sure that's why? It seems possible that the issue is how the data is being loaded. How did you confirm that web components are the issue with loading that page from a saved file?

<comment><USER19> Yes I'm sure. It was a bug in SingleFile [1] and to fix it (I'm the author), I must add a JavaScript script in the saved page to deserialize the shadow root contents that are missing. It means that JS is required to view this saved page correctly.

[1] [https://github.com/gildas-lormeau/SingleFile](https://github.com/gildas- lormeau/SingleFile)

<comment><USER21> I mean, JavaScript being required to view pages sounds like Pandora's already opened box.

<comment><USER19> I disagree, I develop SingleFile for 10 years. That's the first time I need to include a script in the saved page in order to display it properly. Until the existence of Web Components, JavaScript was not needed to display a saved page.

Edit: to be clear, saved pages are HTML snapshots, not full web apps stored in a page.

</comment></comment></comment></comment></comment></comment><comment><USER19> To play devil's advocate, note that Google is trying to propose something to make the shadow root contents deserializable without relying on JavaScript [1][2].

[1] [https://github.com/mfreed7/declarative-shadow- dom/blob/maste...](https://github.com/mfreed7/declarative-shadow- dom/blob/master/README.md)

[2] [https://groups.google.com/a/chromium.org/forum/#!msg/blink-d...](https://groups.google.com/a/chromium.org/forum/#!msg/blink- dev/nJDc-1s3R9U/uCJKsEqpAwAJ)

<comment><USER18> I hope [1] takes off, that's a nice enhancement idea.

</comment></comment><comment><USER22> Ironically, that very page handles link clicks with JS without bubbling back to the browser, so since my browser is set to forbid opening new tabs on a webcoder's whim, I also can't cmd-click links on that page to open a new tab when I want it. _And_ the page does open new tabs on simple clicks if it's allowed in the browser. Such simplicity and accessibility, wow.

I also have no idea from that post what particular problems the authors see with WebComponents and Shadow DOM and why those would be Chrome-only.

</comment><comment><USER23> Given they are based on a fork of Mozilla's Gecko engine I think the real reason behind this post is that their inability to cherry-pick Web Components from Gecko.

It's likely the compatibility cost is making the browser unusable on many websites which is rendering their browser useless over time.

</comment><comment><USER17> I mean, with the dawn of webassembly, I feel as though things are going to get closed off more and more. We've had this with flash and java applets too. Ultimately I hope an open internet will prevail. Otherwise we will not be able to archive things effectively. Don't get me started on accessibility also.

While I'll happily jump on the let's-bash-google-train, is there any effort to do the same thing in a non-scoped way?

I feel a set of 'web-components' would in fact be a super useful thing to have for everyone. Why does it have to be google-chrome / whatever-specific and locked down?

<comment><USER24> > _is there any effort to do the same thing in a non-scoped way?_

It's already done! Web Components (Custom Elements + Shadow DOM) are web standards, ratified by W3C, and they already work great in Firefox and Safari. This whole article is simply incorrect.

[http://w3c.github.io/webcomponents/spec/custom/](http://w3c.github.io/webcomponents/spec/custom/) [https://w3c.github.io/webcomponents/spec/shadow/](https://w3c.github.io/webcomponents/spec/shadow/)

[https://www.webcomponents.org/](https://www.webcomponents.org/) see "Browser Support"

<comment><USER25> I would note that "ratified by W3C" does not mean much nowadays. WHATWG won that war and the W3C now essentially rubber stamps whatever WHATWG decides.

<comment><USER17> What happened there? I am not in the loop on this, so wouldn't mind getting some more details.

<comment><USER25> When W3C's XHTML 2.0 stalled WHATWG created a new "living standard" (which is subject to constant modifications and additions) to continue HTML development. W3C attempted to create fixed standards from the document (e.g. HTML 5.1, HTML 5.2, etc) that only included things that were widely supported and that met standards for accessibility and so on. However, due to the constant churn of WHATWG's document this was difficult and WHATWG were strongly against having what they saw as competing standards.

Therefore there was some conflict between the two groups until WHATWG emerged victorious. Here's the final agreement: [https://www.w3.org/2019/04/WHATWG-W3C-MOU.html](https://www.w3.org/2019/04/WHATWG-W3C-MOU.html)

It boils down to complete capitulation by W3C.

</comment></comment></comment></comment></comment><comment><USER26> WebComponents might make sense for complex Applications as opposed to web sites.

Not everything done on the web is a "web site". Or blog.

There are untold numbers of Boring Business Applications that make the world go around. (like it or not...) These applications are increasingly built to run in web browsers. (not necessarily over the public internet)

These types of applications may be large and complex. They might have hundreds of forms, thousands of reports, etc.

Web Components, and other various web technologies might be great for this type of use. This isn't a web site where you want to "save" a "page". The application isn't organized as "pages". The browser is more like a remote smart terminal with a rich set of technologies available.

Next time you check out a library book, or a nurse draws your blood for lab work, or you get your oil changed, look at the application they are using. Is it running in a web browser?

<comment><USER27> They're also great for blogs too.

Remember how everyone was adding stuff like lightboxes to their pages with jQuery Plugins? Well now that kind of thing is much cleaner and doesn't require writing a line of JS.

</comment></comment><comment><USER28> Please, it's not "Google Web Components", just "Web Components". Web components has pretty decent support in Safari and Firefox. But of course, the real problem is that that is just about the full list isn't it, not considering other Chromium-based ones, and nobody really wants to reinvent the wheel.

</comment><comment><USER29> Interesting points here, especially about `<style scoped>` being removed from browsers after Google requested it. That would be really handy to use. [https://github.com/whatwg/html/issues/552](https://github.com/whatwg/html/issues/552)

<comment><USER30> I (a mere dabbler in web stuff) for one liked <style scoped>, but saying it was killed because Google alone refused to implement it is disingenuous. Just look at [https://caniuse.com/#feat=style- scoped](https://caniuse.com/#feat=style-scoped) And here, style scoped experiment in Chromium in 2012: [https://developers.google.com/web/updates/2012/03/A-New- Expe...](https://developers.google.com/web/updates/2012/03/A-New-Experimental- Feature-style-scoped)

<comment><USER31> But even Mozilla is having problems implementing it. Bugzilla has more than 100 open bugs about WebComponents.

</comment></comment></comment><comment><USER32> >> WebComponents used "in full" (i.e. dynamically) inherently creates complex web page structures

That ship sailed a very long time ago.

WebComponents is dead simple compared to React, TypeScript, WebPack and all the complex tooling which developers are essentially forced to use these days due to a lack of alternatives.

<comment><USER9> > forced to use these days due to a lack of alternatives.

The alternatives were barebones HTML, CSS, and javascript.

They were forced, in 2013, by Google who used their monopoly search position to enforce 'responsive' design (i.e. frameworks) otherwise your page got delisted. This company is ripe for anti-trust.

</comment></comment><comment><USER33> (aside: I haven't seen a PHPBB forum in aggges! Amazing to know they're still going)

</comment><comment><USER34> to be dismissed without even a bare minimum of consideration. Palemoon is a waste of time and it makes me sad there's people out there thinking otherwise.

</comment><comment><USER35> There are plenty of reasons to not like web components: [https://dev.to/richharris/why-i-don-t-use-web- components-2ci...](https://dev.to/richharris/why-i-don-t-use-web- components-2cia)

</comment><comment><USER36> The motivations (and problems) of mega-corps rarely align with the motivations (and problems) of human persons and it's always a mistake for everyone to copy their practices blindly.

You have to decide what you want the web to be. An opaque application or a document. Using the tools of applications for documents is pretty stupid even if it is hip and looks good on a resume. There are two webs. There's the money web run by coporate persons and then there's the web run by human persons. If you're being paid you don't really have a choice and that sucks. But if you do have a choice, please please, consider what Moonchild is asking here.

</comment><comment> at-fates-hands In case someone else has no idea what Palemoon is:

 _Pale Moon is an open-source web browser with an emphasis on customizability; its motto is "Your browser, Your way". There are official releases for Microsoft Windows and Linux, an unofficial build for Mac OS, and contributed builds for various platforms. Pale Moon is a fork of Firefox with substantial divergence._

[https://www.palemoon.org/](https://www.palemoon.org/)

</comment><comment><USER37> All that drama would not have happened with XHTML 2.0 spec which solved many of the problems WebComponents tries to solve (in a worse way). And don't get me started on ES4 vs Typescript. A lot of energy wasted for things that could have been solved once and for all 10 years ago, but were not because browser vendors and big web corporations favored the sloppiness of the status quo back then.

</comment><comment><USER38> Some features of the Web Components are stuff I thought should be available to the end user only, not for the web developer. This includes shadow DOM, and some of my own ideas such as "privileged CSS" and "meta-CSS" (including the ability to set more fine priorities). I also thought of the <widget> element, which provides better backward compatibility (it acts like a <span> if it is not recognized), better user customization, faster loading, and potentially ability to work even if JavaScripts (and WebAssembly) are disabled or are implemented at all. This would be better than Google WebComponents, I think.

(I also don't like that they removed <blink> but did not remove <marquee>; I don't want <marquee>, but I do want <blink>, which I have done with userChrome.css, which also allows me to program the blink rate, is good.)

</comment><comment><USER39> I know this seems like its a silly question, but why are they calling it _Google_ web components?

Aren't web components now apart of the main spec via W3C acceptance?

</comment><comment><USER40> Sites that use WebComponents are sites that I will be unable to use. Not that whether or not I can use a site matters to web devs, of course.

</comment><comment><USER41> People are already not adopting Web Components ( ͡° ͜ʖ ͡°)

</comment><comment><USER42> To fix the overly long lines:

        document.querySelector('.content').style['max-width'] = '650px'

<comment><USER43> Or toggle reader view in your browser

</comment></comment><comment><USER44> As a web developer for over 15 years, I can safely say that bad decisions will continue to be made. Such as, CSS-in-JS. Expect the worst. And it's not completely Google's fault although they should never have bothered to invent WebComponents, this sort of thing comes from the hubris of CTOs and technical leads who are the ones pushing these various technologies, and the acolytes who desire these positions following suit. Believe it or not, some people like to use certain tech to satisfy their own personal itches and not because the tech is actually demonstrably better.

</comment><comment><USER45> Interesting topic about possible death of Pale Moon because of that specification and their inability to adopt it:

[https://www.reddit.com/r/palemoon/comments/fk4fnl/attention_...](https://www.reddit.com/r/palemoon/comments/fk4fnl/attention_palemoon_is_going_to_die_most_likely/)

Who knows the Palemoon team realizes pretty fast that when the developer is writing something like that here - [https://forum.palemoon.org/viewtopic.php?f=1&t=24004](https://forum.palemoon.org/viewtopic.php?f=1&t=24004)

that it has the meaning that they can't move forward or have serious issues in attempting to do so. Google-Web-components... The next BIG thing in web development which is used in Youtube and other big pages will be most likely Palemoons undoing. Without it - no more videos on Youtube! Media and business sites are no longer loaded and can't be used properly, buttons can't be pressed anymore so pages are partly or fully broken! This is what more and more pages adopt, as it is the NEXT BIG THING! The Palemoon team failed in the past to implement highly complex features and the only solution so far was in the end to adopt fresh engines from Mozilla on a regular base, something which is NO LONGER POSSIBLE as future Firefox engines have not the features the Palemoon team sees as vital! Get slowly ready to start the search for a new browser to which you can switch in the near future - the best and most logical time in doing so is NOW!

Additionally - regarding this whole topic: [https://freenode.logbot.info/binaryoutcast/20200314](https://freenode.logbot.info/binaryoutcast/20200314)

WHY it most likely will die... While we all should be grateful for Gaming4JC and his attempts to bring over some code lately - Google Web components is TOO BIG - Seamonkey guys don't have it inside their new new 2.53 - which is based on Firefox 56. Waterfox - using the same code - also has issues. And if it is already problematic with Firefox 56 based code... how big is the chance to succeed with Firefox 52 based code? With the help of only one skilled guy? My suggestion is try as much as other possible browsers now to make the switch when it is forced on you as less annoying as possible.

<comment><USER46> Before voting on this post, please note that the body of it is a copy/paste of the linked Reddit post and does not appear to be newsletterguy's personal opinion.

</comment></comment><comment><USER5> I used to be big into XHTML, but that ship has long sailed.

Also if Web Development is now becoming a synonym to "ChromeOS", Chrome did not reach that state magically, rather thanks to the crowd that kept bashing IE and FF thorough the last decade.

<comment><USER47>
        > I used to be big into XHTML

I know :(

        > rather thanks to the crowd that kept bashing IE and FF thorough the last decade.

I like FF, but that's too simplified.

Chrome was preinstalled on a bunch of devices (namely Android) and heavily advertised (through Google). Firefox and even IE is having an uphill battle fighting that kind of power.

What governments need to do is do to Google what they did to Microsoft. Lawsuit, hefty fine and mandatory choose your own browser. Although, I doubt even that would help.

<comment><USER48> > Chrome was preinstalled on a bunch of devices (namely Android)

Linux comes with Firefox pre-installed (or some variant of it, depending on distro).

Windows comes with Edge pre-installed.

MacOS comes with Safari pre-installed.

OSX comes with Safari Mobile pre-installed.

Android devices appear to have a decent choice of browsers, and the default is chosen by the manufacturer. For a lot of them that's Chrome, but not all.

I don't think there's actually any large group of devices that has Chrome pre- installed.

Also, pure Android users are free to install any browser and set it as the default.

Chrome is so popular because it has been the best browser for years. Whether that's still true is open for debate. But I remember when it came out, finally an answer to the godawful shite that was IE. We may dislike it now, but it saved us from Microsoft's disaster. It's fascinating that you're now claiming that "even IE is having an uphill battle fighting that kind of power". How the tables have turned.

The problem is not so much with marketing power, but with coding investment. Writing a browser is a mammoth undertaking, with all the strange edge cases and standards. Even Microsoft has decided it doesn't see the point in writing one. We're going to be left with two browser choices not because of corporate power, but because it's just too much effort for not enough reward to write a third.

I see where TFA is coming from: if we could agree that browsers don't need to be this complex, then there would be more of them. But that would mean less flexible web pages, and we'd end up with something Flash-like being an attractive alternative.

<comment><USER9> > Chrome is so popular because it has been the best browser for years. Whether > that's still true is open for debate. But I remember when it came out, > finally an answer to the godawful shite that was IE. We may dislike it now, > but it saved us from Microsoft's disaster.

That wasn't Chrome at all. It was Firefox. Where is this history re-write coming from. Firefox lost market-share when they went to Australis and became followers of Chrome instead of leaders (helped in part no doubt by funding from Google).

<comment><USER48> No, Firefox was off lost in the weeds and being useless at the time. I remember it well. Chrome was necessary to stop IE, utter piece of crap that it was, from dominating the world.

<comment><USER47> No. That's not it. IE was losing market share, Firefox was gaining market share slowly. Then after success of WebKit in iOS, Chrome was forked and rose exponentially.

</comment></comment></comment></comment></comment></comment><comment><USER49> Google is trying substitute the OS with their browser. The rest is accordingly to this goal. They'll be exposing more and more of underlying OS functionality on one hand and turning Chrome to be a fully fledged IDE as well. Web and at some point traditional app developers will play along as well since having one platform to develop for is very attractive idea. Web components is just on of many other steps towards this goal.

So yes I'm afraid that at some point we will all end up being servants of Google. Hopefully something will prevent this from happening.</comment>


Is there a good reason to use upper case for SQL keywords? - <AUTHOR> https://stackoverflow.com/questions/292026/is-there-a-good-reason-to-use-upper-case-for-sql-keywords <comment><USER2> I would say, not so much any more. Most editors colorize key words these days, so you don't need to distinguish them with all caps. Although, it still seems appropriate to say SQL rather than sql, for some reason. Maybe I'm just overly traditional.... :)</comment>


Why this Trello refugee has moved to (and is loving) Zenkit - <AUTHOR> http://thenextweb.com/apps/2017/01/22/trello-refugee-moved-loving-zenkit/ <comment><USER2> Trello recently implemented power-ups, that basically foil most of the advantages of Zenkit.

My personal rant: I wish Trello would take better care of its api. The REST endpoints all work great, but examples are very, very basic and languages other than javascript are basically ignored.

<comment><AUTHOR> True, however you're limited to using only one powerup a free user, or 3 as a gold member. Things that count as power ups in Trello, like custom fields & the calendar, are standard in Zenkit and available to all users... Zenkit will also release an API to enable connections to other apps, just as Trello does.</comment></comment>