Hot answers tagged

79

In a sense he was right. The original (pre-spec) versions of HTML, HTTP and URL were designed by amateurs (not standards people). And there are aspects of the respective designs ... and the subsequent (original) specs ... that are (to put it politely) not as good as they could have been. For example: HTML did not separate structure/content from ...


61

He actually elaborates on that very topic on the second page of the interview. It's not the technical shortcomings of the protocol he's lamenting, it's the vision of web browser designers. As he put it: You want it to be a mini-operating system, and the people who did the browser mistook it as an application. He gives some specific examples, like the ...


45

The programming language is, most likely, not going to be the stumbling block. The JVM's mandatory memory management may be a disadvantage in some performance-critical parts (e.g. memory hunger; but then, Java's GC might actually be better at preventing memory leaks than anything you could roll yourself), and there are a few extra security concerns, but ...


40

XSLT does not really have a useful role in the modern interactive web. The purpose of XSLT is to transform from one XML language into another - but you actually never need to do that in the first place. How powerful, fast and well supported a technology is is irrelevant if you don't have the problem which the technology is designed to solve. There are ...


27

It seems to be due to a fundamental disagreement between Alan Kay versus the people (primarily Tim Berners-Lee) who designed the web, about how such a system should work. The ideal browser, according to Kay, should really be a mini operating system with only one task: To safely execute code downloaded from the internet. In Kays design, the web does not ...


22

I read this as Kay being unfamiliar enough with the lower level protocols to assume they're significantly cleaner than the higher level web. The “designed by professionals” era he's talking about still had major problems with security (spoofing is still too easy), reliability and performance which is why there's still new work being done tuning everything ...


22

Kasey covers the main point. The key idea in any web api: you are adapting your domain to look like a document store. GET/PUT/POST/DELETE and so on are all ways of interacting with the document store. So a way of thinking about what codes to use, is to understand what the analogous operation is in a document store, and what this failure would look like in ...


20

There is a way, yes, using a binding to a GUI library like PHP/Gtk. But I don't advise that. Instead, use a language like C#, VB.Net, Delphi, Lazarus, or Python to create the desktop app. Their support for desktop applications is much more mature. The results will be far better, and you'll have fewer headaches from the experience. Don't try to force the ...


20

In my experience, HTTP error codes are insufficient to represent business errors. However, they are useful to represent classes of errors. So, my recommendation would be to use HTTP error codes for categories of errors, but choose a specific error for business logic failures (e.g. 409 Conflict... 200 OK would be misleading here) and include data in the ...


19

Your friend is wrong. First, the GPL only requires to disclose your source code to your customers when your software runs on their machines. Your load balancer runs on your own hardware, so you don't need to provide the sourcecode to anyone who connects to it. There is a variant of the GPL which requires to disclose the sourcecode to everyone who "interacts ...


19

Yes, any general programming language can serve to write the server-side part of a web site. However, the qualities of a programming language, in this subject as in other things, are usually only one of many factors that contribute to its popularity. For example, I reckon that PHP became popular for websites because: It is extremely easy to upgrade from a ...


13

(I've been working on Firefox for about five years.) The questioner is right that a lot of Firefox's code is C++, and in fact C++ is the majority if you count by lines of code (although that doesn't tell the whole story, since we have a lot of JavaScript, and JS is more concise than C++). But in reality, Firefox is written in a lot of different languages: ...


13

Web Server Definition A web server is a service that handles specifically requests in the HTTP protocol format. The server responses to requests made using the HTTP format, and in turn responds using a valid HTTP response. All responses from a web server follow the W3 standards for HTTP protocols. Including, and not limited to, server 500 errors, redirects ...


13

This is not absolutely necessary in order to be a skillful developer. You don't need to understand how a thing evolved over time in order to know how to use it now, in its current state. Similarly, you don't need to know the history of planes to be a good airline pilot. However, learning the history could have the following benefits: You'll better ...


12

A possibility could be to develop the application as a web application and run your web server on your desktop. In this way you do not need a different technology. EDIT: there exist portable web server solutions (for example, http://www.server2go-web.de/ or http://portableapps.com/apps/development/xampp), which make this approach work much more smooth.


11

In theory, it could undoubtedly be done. From a practical viewpoint, however, it seems a bit more questionable. lobo isn't even close to the first time it's been tried. In fact, one of the early showcases of the superiority of Java was supposed to be the HotJava browser -- which was going to change the world, and render the "Mosaic generation" browsers ...


11

This is a pretty common problem, and one of the reasons that web applications tend to commit right away after any change. Sometimes the right answer is do nothing. You have to decide up front how you intend to do this in order of complexity: Last commit wins (default behavior) Actively lock the record to prevent edits Update screen if changes detected ...


10

Ahh yes, I've asked Alan this question a number of times, for example when he was in Potsdam and on the fonc mailing list. Here is a more recent quote from the list which to me summed it up quite well: After literally decades of trying to add more and more features and not yet matching up to the software than ran on the machines the original browser ...


10

Neither really. You should have a framework for routing. That way user have URLs like example.com/home and you can use home as a variable to load different controllers. This is better than example.com/?page=home or example.com/home.php in many ways, such as code flexibility, SEO, and user experience. Since your using PHP, take a look at Fat Free Framework or ...


9

At the risk of stating obvious tautologies, something is only illegal if there is a law against it. When someone puts up a website, it is considered open to the public by default. If there is content that should only be available to certain people, it's up to the web designer to secure it in some way. When content is secured, and someone without ...


9

Is there a technique for unit testing both components in one run? That would actually be the opposite of unit testing - unit testing, especially in TDD style, means to test your components in isolation. Thus the answer is yes, "run separate test suites for the JS and PHP sections", otherwise it is not unit testing and not TDD. Of course, automated ...


9

Your question seems to assume that all of these resources are coming from the same source. But that's not how the World Wide Web works. The browser's prevailing (and correct) assumption is that resources can come from anywhere, and in fact they often do. This is why we can stitch together web pages from many different resources, and have them appear as ...


9

Depends what you mean by "in Web". XSLT is very widely used. As far as we can judge from metrics like the number of StackOverflow questions, it is in the top 30 programming languages, which probably makes it the top data-model-specific programming language after SQL. But XSLT isn't widely used client-side, that is, in the browser. It's usually used either ...


8

It's possible, but it's rarely done. PHP was designed as a language for generating HTML and its functions aren't helpful in desktop applications. Things will be easier if you learn another language. PHP-GTK, PHP-QT, and PHP-Wx exist but don't have any significant community. Trying to make a deployable app will be difficult.


8

First of all, you are going to design a very poor API if you are thinking of "foreign keys" while you design said API. As an API designer, your business is resources, not entities or keys. If you think in terms of resources then the answer is really pretty obvious. You either have an embedded resource (orders belonging to a customer) or you have a query. ...


8

Web browsers have to solve a very similar problem. No, they do not. When you put a game on a different platform, you rely almost entirely on your game's data to make that game work. Those fonts you see? Those are shipped with the game, either as bitmap images or as a font file that gets rasterized at load time. Generally speaking, games do not use system ...


8

There's the title of your question which is a valid one and then there is the content of the question which contains some poor assumptions and/or incorrect statements. I'll address the body first: You have to recompile every time you modify any line of code and pass the built EAR or WAR to the application server... Not true. First of all, technology ...


7

How come you can write an interface without a programming language? You use an interface description language. Those are not programming language because you can't implement anything in them. Of course you could also use a programming language to define the interface (many low-level interfaces are basically defined in C), but this risks tying it too closely ...


Only top voted, non community-wiki answers of a minimum length are eligible