Web开发后的第一种编程语言?

时间:2009-07-09 22:15:35

标签: programming-languages

我一直在考虑制作桌面程序,但我没有经验。我以前用PHP,ASP和JavaScript编程。 Java似乎很好,因为你可以在所有操作系统上运行它。但我真正想要的是结果,我真的不在乎什么语言让我成为一名优秀的程序员(我将在大学后期采取这种方式:P)。我之前尝试过C#和Python,但它只是控制台应用程序。

那么,你向我推荐什么编程语言?

13 个答案:

答案 0 :(得分:5)

如果你想要Windows结果,C#。如果你想要跨平台的结果,Python。

你也可以随便挑选。或者你可以尝试所有。或者看看关于这个完全相同主题的16万亿个先前的问题。

更新:

为了找到这些问题,我提到了,试试谷歌的乐趣:

"what language" OR "which language" learn site:stackoverflow.com

答案 1 :(得分:4)

我个人的偏见是学习函数式编程(Scala甚至lisp会很好)。但是,说实话,任何语言都可以在这一点上极大地提高你的技能。只需看看一些主流产品,然后选择最适合您的产品。

对于某些想法(不是以任何特定顺序):

  • C - 学习内存分配的低级细节可能是有用的背景。如果你使用Linux,Gnome应用程序中有大量的示例代码,向您展示如何用该语言编写相当优雅的代码。
  • C ++ - C类固醇......如果你想学习它,那里有很多复杂性,但它也可以成为你的武器库中的一种很好的语言。
  • C#/ Java - 漂亮,高级,合理的便携式语言。我更喜欢C#语言而不是Java,但每个都有优点和缺点(Java可移植性更好)。最后,它只是一个偏好问题和外部因素(遗留代码库可能会以某种方式摆动你)。
  • Scala - 关于类固醇的Java - 非常好的语言,但学习曲线可能有点陡峭,IMO。
  • Python / Ruby / Lisp / etc - 很好的脚本语言,其中大部分都很容易学习,所有这些都会带来新的思考方式。

老实说,最重要的是,最重要的规则就是享受乐趣。查看基本的“hello world”教程,然后选择一个看起来最令人愉快的教程。学习永远不会伤害。

答案 2 :(得分:3)

我发现用C#/ VB.NET制作桌面应用程序(我强烈推荐前者)可以比其他语言更容易,特别是使用Visual Studio(或免费的Express版本)这样的好IDE或Sharp Develop。当然,它会更容易在Windows上运行(我对Mono + WinForms不太了解),但我认为更容易的转换值得权衡。

答案 3 :(得分:2)

许多人一直在建议使用C,C ++等低级语言,但坦率地说,我不确定这对你的时间是否值得投资。我学到的第一门编程语言是C,来自K& R书,但如果我今天要教我儿子如何编程,我会把他介绍给python或ruby。

python和ruby都是非常富有表现力的复杂语言,易于学习并且具有直观的英语语法。无论如何都要学习结构化编程和较旧的编译语言,但最初你会从高级语言中学习OO概念中获得更多好处。

Java和C#是优秀的语言,但它们与框架紧密结合,您可能会面临学习框架而不是编程基础知识的风险。

答案 4 :(得分:0)

如果您对PHP感到满意,那么Perl会让您感到宾至如归,更好的是,尽情享受。您甚至可以通过CGI转发并使用以前的语言在Web上使用Perl。

如果您正在使用GUI,那么对于其他平台而言,C#是Windows和Java的最佳选择。

答案 5 :(得分:0)

如果你想要结果和GUI而你不关心它是否只是Windows,你可能想要C#。

如果要在不同的平台上运行,可以查看JVM上的任何语言,因为它们都可以访问功能非常强大的GUI工具包。 (Jython,Groovy,Java,...)

答案 6 :(得分:0)

暂不打扰桌面。点击命令行。

获取K& R书并真正学习C.如果您的背景是100%高级(PHP,Python,Ruby,JS)Web开发,您不知道自己错过了多少。

了解基础知识,然后通过进入C#或Objective C来提高标准。

答案 7 :(得分:0)

你可以轻松或努力,快速或缓慢。

很多人都说C#,它很不错,也可以通过单声道在Linux上使用。另一方面,你可以使用C / C ++和Java。你会玩C / C ++,学点东西,成为更好的程序员;但这需要时间。 Java更简单但“有需要”。如果您想要最简单的方法来开发桌面应用程序,可以使用VB或Delphi。 Delphi比VB有一些优点,我不会在这里讨论。

我的建议是,如果你有时间,愿意,只想体验GUI,从低到高,从慢到快,难以轻松。尝试使用汇编程序,了解C / C ++,使用Java,破解C#并浏览思想VB和Delphi。

最后也许你不会创建一个强大的应用程序,但你将为大学做好准备,有经验并且通常“知道”。

答案 8 :(得分:0)

对于具有HTML和Javascript技能的人来说,Adobe AIR可能是最佳选择。 它允许您使用HTML / DHTML创建桌面应用程序,或者如果您熟悉Flex,也可以使用Flex。

请参阅http://www.adobe.com/products/air/

答案 9 :(得分:0)

浏览K&R C。学习C,你应该有一个学习其他语言的良好基础。

答案 10 :(得分:0)

我想说Java会很好地介绍桌面应用程序。我对这里提到的其他一些语言没有任何经验。
与其他一些需要数百行代码的语言相比,你可以用Java做一些简单的事情 这取决于您是否已经在Web体验中接触过OO编程

答案 11 :(得分:0)

将VB.NET(“经典”vb!)视为一种易于入手的高级语言,可以帮助您轻松上手;然后加快C#的速度。这两者是可互换的--VB.NET和C#实际上只是.NET的不同方言。

对于初学者程序员来说,VB.NET为C#做了三件事:

  • VB.NET往往是一种更具描述性(有些人会说很健谈)的语言
    • 在C#使用符号的地方,VB.NET将使用(稍微)更具描述性的单词。
    • 之后,VB.NET可能会让人烦恼,但是到那时你应该对.NET感到很自在,转换到C#会相当简单。
  • 稍微放松一点的语法
    • 如果你在方法调用上留下括号,C#会抱怨,如果你把它们添加到Property访问器就会抱怨 - VB不是那么挑剔。它不会让你因语法错误(如HTML)而陷入困境,但它不会抱怨和抱怨每一个细节
  • 更好的预编译解析
    • 如果您使用两种语言的Visual Studio,您会发现它会立即显示VB.NET的大多数编译器错误和警告。 C#将等到您尝试编译时告诉您代码中存在错误。差异并不大(C#会在延迟后警告你大多数错误)但是它可能是一个集中破坏者认为你刚刚完成一个方法并发现它有10个错误远离编译(其中4个是因为你离开了()一个方法调用。)

了解.NET的主要功能后,如果您愿意,可以轻松学习C#等效和转换;而且在某些时候你可能会认为VB.NET有点过于繁琐且选择C#(几乎就是我所做的)。

VB.NET的唯一问题是你应该养成在代码文件顶部添加两行的习惯;他们会在不让你做蠢事的情况下帮助你:)

Option Strict On
Option Explicit On

这是一个关于“单词与符号”的简短例子...你会发现除了C#中的一些括号之外没有太大区别,还有一些额外的单词描述了VB.NET中发生的事情

Option Strict On
Option Explicit On

Imports System
Imports System.Windows.Forms

<Serializable> _ 
Public Class MyClass
    Inherits SomeBaseClass
    Implements SomeInterface

    Public Shared Sub DoSomething()
        For each item as Object in SomeCollection
            Debug.Writeline(item.ToString)
        Next
    End Sub

    Public Sub SomeInterfaceMethod() Implements SomeInterface.SomeInterfaceMethod
        MessageBox.Show("Grrblah!")
    End Sub

End Class


using System;
using System.Windows.Forms;
using System.Diagnostics;

[Serializable]
public class MyClass : SomeBaseClass, SomeInterface
{
    public static void DoSomething()
    {
        foreach(Object item in SomeCollection)
        {
            Debug.WriteLine(item.ToString());
        }
    }

    public void SomeInterfaceMethod()
    {
        MessageBox.Show(@"Grrblah!");
    }
}

答案 12 :(得分:0)

尽量不要陷入'必须跨平台'陷阱。如果你刚刚开始,那不应该是你的想法。我不能代表所有人,但我自己,我已经看到这种情况发生在其他人身上,很早就陷入了困境并且没有到达任何地方因为我总是试图找到跨平台的东西,只是因为他们跨平台并不意味着它们最适合您的情况,特别是在早期。

当你熟练掌握某种语言时,你就会知道如何通过平台移植和制作东西。不要仅仅因为它被宣传为跨平台而选择一些东西,尽管今天的大多数语言都是这样,不要忽视其他语言的需要,虽然不一定是平台特定的,但在某些平台上似乎更好,例如Windows的C#和Mac的Objective-C,我认为它们都是很好的语言。

如果你想学习一些在网页开发和桌面开发方面都有益的东西,我会选择Ruby。您可以查看Ruby on Rails以进行Web开发。 Ruby也是非常跨平台的,您可以使用它开发桌面应用程序。还有各种绑定,例如,您可以使用它编写Mac应用程序,甚至可以使用Iron Ruby访问.Net(如果需要)。

Python也是一种可能性。