2009-07-09 2 views
2

Я думал о создании программы для рабочего стола, но у меня нет опыта в этом. Раньше я программировал в PHP, ASP и JavaScript. Java кажется приятным, так как вы можете запускать его на всех ОС. Но я действительно хочу получить результат, мне все равно, какой язык делает меня хорошим программистом (я возьму это позже в колледже: P). Я пробовал как C#, так и Python раньше, но это были только консольные приложения.Первый язык программирования после веб-разработки?

Итак, какой язык программирования вы мне рекомендуете?

+3

www.dreamspark.com - сайт Microsoft для студентов, чтобы получить бесплатные версии программного обеспечения для разработки. Для получения программного обеспечения требуется подтверждение, но оно стоит того, что вы можете получить (например, VS2008 Professional вместо VS2008 Express) – CertifiedCrazy

+0

@CertifiedCrazy Я рассмотрел возможность подписаться на 1 класс часов BS только для того, чтобы захватить их предложения. Предоставленный MSRP - пара, но я думаю, что 60 долларов - это правильно :) – STW

+0

My $ 0.02: Если вы заинтересованы в расширении своего опыта в приложениях для Android, Java - хороший выбор. Однако это не является подходящим вопросом для переполнения стека. – nullability

ответ

0

Если вам было удобно в PHP, вы будете чувствовать себя как дома с помощью Perl, еще лучше, побаловать себя. Вы могли бы даже развернуться и использовать Perl в Интернете с вашими прежними языками через CGI.

Если GUI - это то, что вам нужно, C# - ваш лучший выбор для Windows и Java для других платформ.

5

Если вы хотите получить результаты Windows, C#. Если вы хотите получить кросс-платформенные результаты, Python.

Вы также можете просто выбрать случайным образом. Или вы можете попробовать их всех. Или посмотрите на 16 триллионов предыдущих вопросов по этой же теме.

UPDATE:

Чтобы найти эти вопросы, я уже говорил, попробовать Google забаву:

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

+0

Я попытался найти его, но не нашел ничего подходящего, получил какие-то ссылки? – 2009-07-09 22:18:44

+0

См. Обновленный ответ. –

3

Я обнаружил, что делает настольные приложения в C#/VB.NET (я настоятельно рекомендую первый), может быть намного проще, чем другие языки, особенно с хорошей IDE, такой как Visual Studio (или бесплатные экспресс-версии) или Sharp Develop. Разумеется, будет намного проще получить его в Windows (я мало знаю о Mono + WinForms), но я думаю, что более легкий переход стоит компромисса.

+0

+1 для C# и моно. – kenny

+0

+1 для VB.NET (так как он новичок в программировании). Я предпочитаю C# лично (через пару лет VB.NET), но VB.NET - это то, где он предназначен для резки ваших зубов в .NET, если вы начинаете очень много с нуля. – STW

0

Если вы хотите получить результат и графический интерфейс, и вам все равно, только ли это окна, вы, возможно, хотите C#.

Если вы хотите работать на разных платформах, вы можете проверить любой язык на JVM, так как все они имеют доступ к довольно мощному инструментарию GUI. (Jython, Groovy, Java, ...)

+0

C# и Mono для OSX и Linux. – kenny

0

Не утруждайте себя настольным компьютером. Нажмите на командную строку.

Получить книгу K & R и действительно узнать C. Вы не знаете, сколько вы пропустили, если ваш фон является 100% -ным высокоуровневым (PHP, Python, Ruby, JS) веб-разработчиком.

Узнайте основы, а затем поднять планку, перейдя в C# или Objective C.

+2

@rooskie Зачем ему боль ... только потому, что мы это сделали? Хотя я использовал C на протяжении десятилетий, я бы никогда не выбрал его. C#! – kenny

4

Мой личных пристрастий бы к изучению функционального программирования (Scala или даже LISP бы неплохо). Но, честно говоря, любой язык может значительно улучшить ваши навыки на данный момент. Просто взгляните на некоторые из основных, и выберите тот, который лучше всего подходит вашим интересам.

Для некоторых идей (не в определенном порядке):

  • C - Изучение низкоуровневых деталей выделения памяти может быть полезным фоном. Если вы используете Linux, в приложениях Gnome есть тонны кода кода, чтобы показать вам, как писать достаточно элегантный код на этом языке.
  • C++ - C на стероидах ... здесь есть много сложности, если вы хотите изучить его, но он также может быть отличным языком для вашего арсенала.
  • C#/Java - Хорошие портативные языки высокого уровня. Я предпочитаю язык C# над Java, но для каждого есть преимущества и недостатки (лучше переносимость Java). В конце концов, это просто вопрос предпочтения и внешние факторы (устаревшие кодовые базы могут качать вас так или иначе).
  • Scala - Java on Steroids - Действительно хороший язык, но кривая обучения может быть немного крутой, ИМО.
  • Python/Ruby/Lisp/etc - Хорошие языки сценариев, большинство из которых просты в освоении, и все это приведет к новым способам мышления о проблемах.

Честно говоря, самое главное правило - просто повеселиться. Просмотрите основные «привет мир» учебники и просто выберите тот, который выглядит наиболее приятным. Обучение никогда не болит.

+1

Хорошее резюме, но Lisp ... scripting? легко? – kenny

+0

(+ 2 2) - Что может быть проще? Хорошо, я дам вам, что для большинства, чем для других, это немного сложнее. :) – jsight

0

Вы можете пойти легко или пойти тяжело, идти быстро или идти медленно.

Многие люди говорят, что C#, это хорошо и также можно использовать в Linux через моно. С другой стороны, вы можете пойти с C/C++ и, возможно, с Java. Вы будете получать удовольствие от C/C++, научиться чему-то и стать лучшим программистом; но это займет время. Java более простой, но «нуждающийся». Если вам нужен самый простой способ разработки настольного приложения, вы можете использовать VB или Delphi. У Delphi есть некоторые преимущества перед VB, которые я не собираюсь входить сюда.

Мой совет был бы, если у вас есть время, готовы и просто хотите испытать графический интерфейс, перейдите от низкого к высокому, медленного, быстрого, легкого. Попробуйте ассемблер, знайте C/C++, используйте Java, взломайте C# и просмотрите мысли VB и Delphi.

В конце концов, возможно, вы не создадите мощное приложение, но вы будете готовы к колледжу, быть опытным и вообще «знать вещи».

0

Для кого-то с навыками HTML и Javascript Adobe AIR может стать для вас способом. Это позволяет создавать настольные приложения с использованием HTML/DHTML или если вы знакомы с Flex, вы также можете использовать Flex.

См http://www.adobe.com/products/air/

0

K&R C Пройтись. Изучите C, и у вас должна быть отличная основа для изучения других языков.

2

Многие люди предлагали языки низкого уровня, такие как C, C++, но, честно говоря, я не уверен, что это было бы целесообразным вложением вашего времени. Первый язык программирования, который я узнал, был C, из книги K & R, но если бы я должен был учить моего сына, как программировать сегодня, я бы представил его на python или ruby.

Оба питона и рубина - очень выразительные, сложные языки, которые легко освоить и имеют интуитивный синтаксис на английском языке. Во что бы то ни стало, изучите структурированное программирование и старые скомпилированные языки, но изначально вы получите больше преимуществ от изучения концепций OO на языке высокого уровня.

Java и C# - отличные языки, однако они очень тесно связаны с их фреймворками, и вы можете столкнуться с риском увязнуть в изучении каркаса вместо фундаментальных принципов программирования.

0

Я бы сказал, что Java даст хорошее представление о настольных приложениях. У меня не было опыта работы с некоторыми из других языков, упомянутых здесь.
Вы можете сделать некоторые простые вещи на Java с очень малой головной болью по сравнению с некоторыми другими языками, для которых требуются сотни строк кода.
Просто зависит, если вы были подвержены OO программирования в вашем веб опыт

0

Рассмотрим VB.NET (не «классический» Vb!) Как легкий в запуске с языком высокого уровня, которые могут помочь вы получаете ногу в дверь; затем получите скорость с C#. Эти два являются взаимозаменяемыми - VB.NET и C# - это действительно разные диалекты .NET.

Там три вещи VB.NET будет для нее более C# для начинающих программистов:

  • VB.NET имеет тенденцию быть более описательным (некоторые сказали бы болтливый) язык
    • где # использование C символы VB.NET будут использовать (слегка) более описательные слова. Через некоторое время VB.NET, вероятно, будет болтливый до точки она раздражает вас, но тогда вы должны быть вполне комфортно с .NET и переход на C# будет довольно тривиальным
  • Чуть более расслабленном синтаксисом
    • C# будет зажат, если вы оставите круглые скобки при вызове метода, и возьмитесь, если вы добавите их в Property accessors - 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!"); 
    } 
} 
0

Постарайтесь не попасть в ловушку «должен-быть-кросс-платформенный». Если вы только начинаете, это не должно быть так, как вам кажется.Я не могу говорить за всех, но я сам, и я видел, как это случается с другими, попало в это на ранней стадии и никуда не ушло, потому что я всегда пытался найти вещи, которые были кросс-платформой, и только потому, что они являются кросс-платформой, не означает, что они лучше всего подходят для вашей ситуации, особенно на ранней стадии.

Когда вы освоитесь на каком-либо языке, вы узнаете, как порт и сделать вещи перекрестной платформой. Не выбирайте что-то исключительно потому, что оно рекламируется как кросс-платформа, несмотря на то, что сегодня большинство языков не чувствуют необходимости игнорировать другие языки, которые, хотя и не обязательно специфичны для платформы, кажутся лучше на определенных платформах, таких как C# для Windows и Objective-C для Mac, которые, на мой взгляд, являются прекрасными языками.

Если вы хотите узнать что-то, что приносит вам пользу в веб-разработке, а также в разработке настольных компьютеров, я бы пошел с Ruby. Вы можете посмотреть Ruby on Rails для веб-разработки. Ruby также довольно перекрестная платформа, и вы можете разрабатывать настольные приложения с ней. Существуют также различные привязки, поэтому вы можете писать приложения Mac с ним и даже иметь доступ к .Net с Iron Ruby, если это необходимо.

Python также является возможностью.

Смежные вопросы