我想创建一个类似于家谱在线应用程序(如geni.com)的东西。我不确定我应该使用哪种语言来构建它。我的IT优势不在于编程,这个项目需要我坐下来学习一些语言。我现在的问题是我不知道应该使用哪种语言。
因此,考虑到家庭树在线应用程序的想法,这里有一些规范。
- 我不想用闪光灯。
- 该应用程序需要可缩放和可滚动(有点像谷歌地图)
- 应用程序需要能够在不重新加载页面的情况下添加内容。也许有一点“+”符号,当我点击它时,我可以添加一个标签/标题/描述/图片
- 应用程序需要能够保存您的工作,以便稍后检索该用户。
- 用户能够创建的布局是一种基于窗口小部件,用户可以在其中添加新的泡泡,然后在该泡泡中,他们可以添加文本或内容。
我开始使用HTML5 canvas和Javascript进行编程,但我仍然坚持创建一个不直接来自Javascript的数据库连接(因为这对我来说似乎很不安全)。但我不仅仅是如何安全地与数据库进行交互(我甚至没有选择数据库),而且我担心我将无法使用javascript构建应用程序可能需要像ajax或其他东西,但我不熟悉现在每种语言的作用。
4 个答案:
答案 0 :(得分:1)
正如有人已经指出的那样,您还需要使用服务器端语言。 (Ruby,Python,PHP)你完全没有在浏览器中通过javascript尝试数据库连接。
您需要构建一个服务器端应用程序来处理应用程序的基本操作。
我强烈建议您阅读MVC设计模式,并可能将Ruby on Rails作为您的后端框架,它与ajax类似的功能非常好用,并且我认为它的学习曲线稍微短一些其他框架/语言。
答案 1 :(得分:1)
如果您从头开始,那么最好使用的语言就是您最适合的语言。或者,如果你不打算自己开发整件事并且你已经有其他一些感兴趣的人那么最好使用的语言就是大多数人都习惯的语言。如果它只是你而你还没有任何收藏,那么环顾四周并玩一些 - 这是唯一的方式,以确定你是否真的想要/对它们有效。
话虽如此,现在有一些更有可能的候选人是:
- JavaScript:这种语言只是将 D 放入DHTML的日子已经过去了。目前,JavaScript是一种可行的客户端和服务器端语言。 (其他人已经建议Node.js - 我还建议NPM (node package manager)来处理你的依赖关系)。通过一些规划,您可以在客户端和服务器端重用大多数应用程序代码。在缺点方面,大多数服务器端技术非常新(最多只有几年),因此您可能会发现自己实现了在应用程序中使用的工具,而不是应用程序本身。寻找支持它的服务器也会因为它的年龄而变得更难。
- Perl:在时代的另一端,我们发现Perl--第一种常用于制作Web应用程序的语言,它仍然支持各种各样的那里有用的网站(包括Pinboard等新网站。)CPAN上流行的工具已经在 fire 下进行了审核。好消息是它不会很快到达任何地方。坏消息是,您可能需要更加努力地寻找支持[昨天刚刚出现的最新,最糟糕的事情]的模块。
- PHP:现代网站的BASIC(或Perl,取决于你问的是谁),PHP是从头开始设计做的一件事 - 让构建动态网页更容易。它的受欢迎程度意味着有相当多的服务器支持(PHP + Apache + MySQL是Web服务器的Model T Ford - 每个人都可以负担得起)和大量可供阅读的预构建代码。然而,像BASIC一样,PHP的优势也是它最大的弱点。几乎任何人都可以在PHP中编写工作的东西......它的工作原理取决于谁编写它。适用于网络上发现的所有代码段的警告权限适用于使用PHP编写的代码片段。
- Python: made programing fun again的语言(至少对于那些能够看到重要空白和缺少块/匿名函数并忽略< 3.x issues with non-ASCII out of the box的人来说这是一个通用的,flexible和multi - paradigm语言,具有相当实用的标准库(但没有.NET或Java令人难以置信的膨胀)。此外,已经完成了相当多的工作,因此很有可能你需要的东西已经由其他人开发。另外,it can make you fly。
- Ruby(有或没有Rails):如果您愿意,可以使用the framework that made MVC cool使网络变得有趣的语言。那里有很多的文档,还有一个很棒的社区,有许多预先构建的工具(称为gems)可以从中挑选 - 免费且廉价的服务器不像PHP那么常见对应物,但它们可能具有更高的质量(当随机选择时)。
所有这些,他们是所有伟大的Web开发语言。重要的不是我们认为 上面列出的所有语言都是主流(或将在未来两年内),易于学习和易于编写的语言。无论你选择什么开始,你都不会出错。
或者,如果你想要一些更难或更少主流的东西......我正在使用.NET应用程序在工作中,并在我的业余时间使用基于Lisp (SBCL)的服务。我也听说过关于Lua和Java的很棒的事情......那里至少有two C++ web frameworks ......而且我确信某人正在拥有有趣的是使用FORTRAN后端在COBOL中构建Web服务。 ; - )
答案 2 :(得分:0)
您需要使用PHP或Ruby on Rails等语言的服务器端脚本与数据库进行交互。
答案 3 :(得分:0)
如果您已熟悉HTML5和JavaScript,我建议您使用Node.JS吗?这是你最接近浏览器开发的知识。它还可以与更接近HTML5建议的IndexedDB。
的数据库系统挂钩
考虑到这一点......
如果您对编程和编程语言缺乏经验,那么您描述的应用程序将涉及相当大的学习曲线。虽然Flash和Flex具有非常好的界面来通过点击和拖动来构建应用程序,但HTML5的工具却不那么成熟。
这并不是说用HTML5是不可能的。只是在人们创建工具以使应用程序构建过程更接近Adobe提供的工具之前还有一段时间等待。