As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
So it's my first time actually making a website and hosting it online--most of what I've done has been tutorials and class work. Now a friend and I want to make something professional and maybe evolve into a business.
1.) I want to be planning long-run but am kind of afraid of being committed to something I have rudimentary knowledge of. What do you think about starting with these technologies (CouchDB, Node.js)? The long-run goal is that it will be social networky and use search, hence noSQL. Will be using Linux + RoR. Node.js is still a bit elusive to me though I've read a lot about it.
2.) Do most web hosting services support these technologies or do I have to find specialized hosting services or host them myself?
3.) What about Cloudant and Nodejitsu/CloudOne--should I consider using these? Other suggestions much appreciated.
I would most certainly recommend a well established PAAS provider. Like maybe Heroku or AppFog. They will make sure you only have to worry about developing your next cool app rather than being a sysadmin.
Heroku also supports deployment by git which is nice. Another big advantage is If your application actually kicks off and you need to scale, scaling with these PAAS providers is often as simple as playing with a few sliders!
1 . There are a lot of noSQL databases available MongoDB and CouchDB are pretty good. They have good documentation. But make sure they fit your exact need before choosing either. RoR is again a great framework. Notably used by twitter. And of course leave the actual server administration to PAAS providers!
2. Checkout Heroku or AppFog. Both of them support RoR and are well reputable with good documentation and community available.
3. I would recommend using Node.js if you plan to build an app which handles a lot of concurrent connections. Like a chat app for example this is basically where Node.js shines.
And finally, Don't think too much into what the hip technologies are. Choose what you are familiar and comfortable with. And most importantly choose what fits your exact need.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm starting to build a small ERP web application. Im currently a bit in-between choices for the system that i should use. What i have in mind is that i would do a REST api to pass data from backend to frontend and probably use Angular.js to handle all the frontend stuff (views and such).
Would it be an overkill to use a PHP framework, lets say Codeigniter just to build an REST service like that?
Im also very inclined to use Node.js / Express / Angular combination. But since that would be harder to maintain in the future (since pretty much everything here runs on PHP and the knowledge is better in that) i would really need some good pointers why that would suit better such need? I have some experience with Node / Angular / Express and PHP but i haven't really used Codeigniter.
TL;DR is Codeigniter an overkill to use only to build an REST service and use Angular for the rest & is there any really good advantages why I could lean towards Node.js / Express combination rather than PHP framework?
Depends on what your data will be, and how you will manipulate that data. Think of it as when you do PUT request, what you will do after that. If developers are familiar with PHP i would go with CI, if you are certain that developers will pick it up easy (in case you know, you went missing) and you wish to learn new stack, go with Node.js / Express / Angular.
I personally have build CI rest (it's not a brainier with CI REST library) with backbone.js as front end. Not much of an overkill, CI is fast and I used Doctrine 2 as my ORM (as database was relational).
Advatages /Disadvatages as said, are depending on (1) what your app is intended to do, (2) development time/deadlines , and as you said (3) maintenance.
Edit, if on another hand you want very light PHP REST framwework http://www.slimframework.com/
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I know node.js can build web apps that run super fast, but I just can't find enough info about how it would perform in a magazine or news style website. I know some CMS's like Joomla or Drupal (or even wordpress) are very good at it, but as the number of users grow, I'm seeing some performance issues. Naturally, the web server count but as I want to host it in the cloud, I guess working with node and just create a simple CMS based on it would suit the needs for a better user experience once many users can log in and do their social stuff parallel to the main side of the site that is just a news and reviews site. Does any node.js coder knows about it?
Agree that this is rather subjective, but that said having some experience with node I don't know that there is any particular advantage to using it in this instance. I think frameworks like Django (Python) and Rails (Ruby) are more or less built to accomodate this type of use-case and assuming you have PHP experience but not a lot of node experience, would likely be easier for you to build and deploy a working CMS with very quickly.
Based on what you've described I don't know that any of the advantages of using node will be particularly relevant, and it's unlikely that using node instead of any other modern framework and web server will have a huge impact on your site's performance.
I think this question is quite subjective, as the performance of any application written using modern and maintained languages will depend mostly on the skills of the developer(s), and if your website reaches a certain scale it will not depend only on the language but also on the architecture of your distributed system.
Some of the usual strengths of node are that it is event driven, single language for front-end, back-end thus developer integration should be easier. It's event-driven model gives it a nice and easy(subjective!) way to write and understand (for new devs) applications that make heavy use of concurrent operations such as data-intensive operation across distributed systems.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Benchmark
Hacker News Discussion
Hacker News Discussion 2
It's not like Node.js is even really dominant today (except in the Hacker News community of course), it hasn't even had a 1.0 release yet. Funny to be speculating on what might replace it already :)
Performance is nice (though micro-benchmarks are not the right way to judge that) but if that was the only thing that mattered we would all be writing custom web servers in C for every app. One of the other important things is the community support, which Node.js definitely has going for it at the moment. It has a very healthy open source (this being the key) community that has created a large library of tools.
I think Vert.x is interesting and has a different way of looking at things than Node.js which is great. If they are able to continue to make progress, get more people interested in it, and show that it is easier and faster to write web apps then who knows? Maybe in a few years we can have a discussion on what is going to threaten Vert.x's future.
There are some interesting things brought up by this micro-benchmark that may be worth addressing in Node, but it's very important to remember that nobody doing 100's of millions of hits per day (which these benchmarks show) does so on one machine. They do it on many machines.
There are certain levels where faster languages make a difference (see for example Twitter migrating their backend from Ruby to Java), but it's VERY rare to get to that position.
Most people need a language that is clean and easy to program in, and a good ecosystem.
Vert.x has no ecosystem to speak of. If you want a JVM based system you can get plenty of options there. If you want a Javascript based system the best option right now is Node.js. It's that simple.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I want to make it clear that I have no prior experience programming, I only have experience in HTML and SQL, everyone seems to be like "Look like the documentation" well yes that sure helps me! sniff *sniff* is there a book that could be recommendable or a series of webcasts?
Welcome to the wonderful world of node.js!
I myself have also just started learning Node.js and often asked myself "what is express?" "Why use express over node?" etc.
Express is a fantastic web framework so you can develop robust applications with having a lot of the hard stuff done for you :)
I highly recommend reading through his examples to have a feel how it all gets put together: https://github.com/visionmedia/express/tree/master/examples
I found this screen cast very helpful in myself learning the basics: http://vimeo.com/38136668
Proloser goes through explaining how to start a new express application, how to connect it to mongodb and explains how and why everything works :) He's created it for new noders.
Us noders hang out on irc.freenode.net in the #node.js channel. Come and ask any questions you have and we will help set you on track :)
I want to make it clear that I have no prior experience programming,
I only have experience in HTML and SQL
Based on these two points, first you should learn programming. You want to learn NodeJS+Express+MongoDB which 3 of them are completely different things from what you already know.
First start with Javascript. This is more than enough: http://www.w3schools.com/js/
Write your scripts to a file named try.js and execute them with node try.js and see the results!
Then try to learn how a web application is built. Two basics for you:
You request something from server via HTTP, http://myapp.com/users/all
Server processes requests, and sends you a result in HTML
Your browser displays it.
More information at: http://www.slideshare.net/nbrier/how-to-build-a-web-app-for-nonprogrammers
Look the ExpressJS web site, and go step by step, and TRY EVERYTHING there
Then learn MongoDB, this is not SQL database, it's a NoSQL database, I do not know why you want to learn it, however, experimenting with http://www.mongodb.org/display/DOCS/Tutorial will definetely help. But all you have to do is looking in to examples. To use MongoDB from Node, you can use Mongoose.
I think you should learn the basics of a programming language before getting deep into the frameworks.
Code Year has a series of interactive programming lessons to learn JavaScript. You learn the language step by step from the ground up.
When you have grasped JavaScript you can start using express and mongo and other frameworks.
You have a long way to go, if you only know HTML/CSS.
Take a look at http://howtonode.org/express-mongodb
You have to have an advanced understanding of how to code modular JavaScript, JSON,
Databases (especially NoSQL databases ).
Cheers!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
I'm building a web app and starting to feel the pain developing slick UI features -- I tried iPhone/Android programming and it's so damn simple. Why is it that everyone still settles for the hacked-together tools that comprise web programming, instead of gravitating towards RIAs?
I want to program the app with an RIA but...the most popular websites are suspiciously not using them.
Thanks!
There's a couple of drawbacks to RIA... I'm mostly speaking to Flash/Silverlight and the like, as Ajax RIA is a bit different. The drawbacks:
Vendor lockin... once you develop a platform using RIA you are locked into whichever vendor supports the RIA. You are at the mercy of their support, upgrade paths, etc. Using standard web technologies you won't fall into this.
Search engine indexing... Search indexing of RIA is relatively new, so there might be issues getting your content known.
Performance/interoperability issues... Everyone knows about Apple's rejection of Flash. Writing your web application adhering to the standards guarantees your application is accessible to any standards compliant browser. A company like Apple can't just pull the plug on you.
Accessibility issues... It might not be as easy to program for 508 compliance using Flash/Silverlight as it would be with plain-old HTML. 508 compliance is a must for any big website.
You mentioned phones... (Android/iOS) Obviously people don't target mobile phones using Flash/Silverlight for the aforementioned reasons. For phones, generally it makes more sense to create a mobile application as you get more native features then you would if you were creating a mobile website. However, creating a mobile website requires you to write your application once whereas you would need to write your application for each phone you wish to target if you went the mobile application route.
Flex feels slow and non-native.
RIAs running on the desktop generally have to feel native on at least two very different operating systems. You then have to deal with issues on the users machine and the whole nightmare of versioning and upgrades. Web apps only have to work on your server configuration.
RIAs running in the browser feel even slower because all that slickness has to be transferred to the client. They also break the way people expect websites to work.
They are useful for some applications, but normal HTML/JS/AJAX serves most web applications better.
Phones are a different environment entirely and make more sense for the RIA model in many ways.