Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Some other important look-and-feel clones:

Windows (copying MacOS)

Lotus 1-2-3 (copying VisiCalc)

GNU/Linux (copying Unix)

Gosling Emacs (copying ITS and Multics Emacs), which eventually became GNU Emacs

Excel (copying Lotus 1-2-3, to the point that VisiCalc slash commands still work in Excel last time I tried them about five years ago)

OpenOffice (copying Microsoft Office)

C compilers everywhere (copying the original Unix C compiler)

Compaq's clone PC (copying the IBM PC, and giving rise to the entire IBM-compatible market)

Friendster (copying Sixdegrees)

Facebook (copying Friendster, somewhat less faithfully)

Every modern IDE (copying Turbo Pascal)

Every modern search engine (copying Google)

MS-DOS (copying CP/M and a little bit of Unix)

MercadoLibre (copying eBay)

Intel's current x64 CPU line (copying AMD)

Netscape (copying Mosaic)

Internet Explorer (copying Netscape)

Wordpress (copying Movable Type) (I'm not sure who to credit with the modern blog, with its comment threads, "after the jump", and permalinks. Pyra?)

Being able to copy the look and feel of competing products is crucially important to allowing innovation to continue. If Personal Software Inc. still had a monopoly on spreadsheets, it's a good bet that the spreadsheets we use today wouldn't have progressed much from where we were in 1984. The interface designs that seem innovative and unique today are either faddish crap or the baseline from which tomorrow's innovation begins.



There's a big difference between copying conventions and literally copying the colour scheme/gradients.

Many of your examples have the competitor creating a slightly different style, be it button style or menus. Open Office/Microsoft Office. Windows versus MacOS.

Hell, look at DuckDuckGo and Bing. Sure they are both search engines (just like Google) but they still have a slightly different visual identity and results page than Google.

HN is very similar to Reddit but still tries to do small things that differentiate it.

The original post looks like literal translation of Tumblr. Even if they changed the colors so that it fit with it's own identity I could agree with your point but this is not even close to being the case.


Though there is something wrong with directly copying UI elements with just a text change - that should be completely frowned upon and called out imho.

Other than that - competition is good, and imitation should be seen as you are doing something good, now just make sure you can keep up or do it better consistently unless you want your competition to take over the market share.


> Though there is something wrong with directly copying UI elements with just a text change - that should be completely frowned upon and called out imho.

Almost all of my examples could be accurately described that way in their first version. Maybe not Windows 1.0, not Facebook, and I think not Wordpress, and there may have been a couple of other exceptions. MercadoLibre still looks exactly like eBay to me.


That's because it's eBay's Latin American partner and eBay has a 19.5% ownership interest in MercadoLibre - not to mention eBay sold off iBazar to MercadoLibre in that process.


No, that's not why. It looked like that from the beginning, long before eBay bought into them.


"I'm not sure who to credit with the modern blog, with its comment threads, "after the jump", and permalinks."

LiveJournal had them all, no idea if it was the first (as you show, it doesn't matter much).


LJ and Blogger were contemporaries. Frontier's blogging features were a little earlier. Among the three, not sure which ones invented the things I identify above as "the modern blog".


Heh did you really just claim that all C compilers "copied" the original C compiler?


I certainly did. In many cases, notably GCC, they copied it all the way down to its command-line options and error-message formats. If C compilers had color gradients, they'd've copied them too. Fortunately, at the time, we didn't have to contend with the fucking intellectual enclosurists who thought that things like user interface look-and-feel should be owned by somebody.


I don't think that's the same at all. The hallmark of a compiler isn't its command line arguments, it's the output. I think you would have more than a little difficulty arguing that all C compilers produce the same output.


Generally people don't look at the output of the compiler, but the output of the compiled program. New compilers for an existing language generally have to reproduce the behavior produced by the existing compiler; they can't, for example, return the last-evaluated value in "a && b" instead of 0 or 1, even though that is almost always more useful. (You could say, "Well, they're just complying with the standard," but that's backwards; clone C compilers existed years before any standard, and the standard codified the behavior they all found sufficiently important to clone, as well as improving the language in some ways.)

It's true that new compilers often try to produce the same effect with more efficient generated code, just as web sites might strive to produce the same visual output more quickly.


Generally people don't look at the output of the compiler, but the output of the compiled program.

This is wrong because you are viewing the task of a compiler in terms of the result of the compiled program. A compiler is simply a translator from one language to another. The result of the program is the result of an interpreter running the code, not the compiler. Deviation from correct output in the compiled code is not only not allowed, it is deemed a bug in that code.

The unique part of different compilers is not the output of the compiled code they produce but the compiled code itself. All compilers should produce code that produces the same result if they are taking in the same input, by definition.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

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

Search: