Поиск полезного языка программирования для университетского [закрытого] класса

8
задан 5 revs, 3 users 100% 9 December 2011 в 18:20
поделиться

18 ответов

Почему бы не выбрать Erlang?

Введение из Википедии:

Erlang - это параллельный язык программирования общего назначения. язык программирования общего назначения и система. Последовательное подмножество Erlang является функциональным языком, со строгой оценкой, единственным присваиванием, и динамической типизацией. Для параллелизма он следует модели Actor. Он был разработана компанией Ericsson для поддержки распределенных, отказоустойчивых, мягкого реального времени, безостановочных приложений. Первая версия была разработана Джо Армстронгом в 1986 году. 1 Она поддерживает горячую замену, таким образом, код может быть изменен без остановки системы. 2 Erlang изначально был проприетарным языком в компании Ericsson, но был выпущен как открытым исходным кодом в 1998 году.

Хотя потоки считаются сложной и склонной к ошибкам темой в большинстве языков, Erlang предоставляет на уровне языка возможности для создания и управления процессов с целью упрощения параллельного программирования. Хотя все параллелизм в Erlang является явным, процессы обмениваются сообщениями вместо общих переменных, что устраняет необходимость в блокировках.

10
ответ дан 5 December 2019 в 04:30
поделиться

Вы можете попробовать специализироваться на COBOL для курса. Да, я понимаю, что COBOL - это старая школа, но выслушайте меня.

Он представляет собой интересное реальное приложение, поскольку многие старые системы, используемые предприятиями, все еще написаны на нем, и у предприятий нет причин менять это - код по-прежнему функционирует. Однако люди, написавшие код еще в 1970-80-х, уходят из индустрии. Это создает большие объемы неподдерживаемого кода, кода, который вам, возможно, придется однажды поддерживать в промышленных условиях.

Вы можете использовать OpenCOBOL в качестве компилятора. Он доступен здесь: http://www.opencobol.org/

2
ответ дан 5 December 2019 в 04:30
поделиться

А как насчет C? Он достаточно похож на Java, чтобы вы не тратили много времени на синтаксис, но достаточно отличается, чтобы это было сложно. Кроме того, это по-прежнему один из наиболее часто используемых языков программирования (читайте: вам все равно придется когда-нибудь выучить его).

7
ответ дан 5 December 2019 в 04:30
поделиться

нельзя ошибиться, используя Javascript/ECMAScript!

зайдите на developer.yahoo.com/yui/theater/

и посмотрите js-видео Дугласа Крокфорда

0
ответ дан 5 December 2019 в 04:30
поделиться

Понятно что вы не упомянули Python - но если Haskell для вас слишком обычен, вы можете поискать в другом месте .... На самом деле, я рекомендую попробовать Haskell только для системы типов, что делает все, что не является современным функционалом язык по сравнению с ним выглядит ужасно.

Вы можете рассмотреть язык на основе стека, такой как Forth или Postscript. Это немного отличается от всего упомянутого выше.

0
ответ дан 5 December 2019 в 04:30
поделиться

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

0
ответ дан 5 December 2019 в 04:30
поделиться

Если у вас есть Mac, попробуйте Objective-C? Все инструменты разработчика бесплатны, и это полезный навык для возможной будущей работы с iPhone.

0
ответ дан 5 December 2019 в 04:30
поделиться

C для штапельного языка программирования. Erlang или Haskell для чего-то необычного. J или K для полного WTF.

Возможно, вы также захотите рассмотреть Например, Python. Отрывок:

#!usr/bin/python   uh from sys import exit
# Grab the user's name.    
ok so like name = raw_input("yo! what's your name?" ) right

# Make sure they entered something, then say hi.   
if name.strip() is actually like "":
     toootally just exit()   
else:
     um yeah
     print like "Hi %s, nice to meet you." % name
1
ответ дан 5 December 2019 в 04:30
поделиться

Рассмотрим Scala.

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

1
ответ дан 5 December 2019 в 04:30
поделиться

Когда я изучал языки программирования, мне пришлось выучить 6 новых языков, так что, честно говоря, вы довольно легко отделались.

Я думаю, вам следует выбрать что-то, что имеет рыночную стоимость. Я думаю, что большинство курсов по языкам программирования преподаются на младших курсах, поэтому тот факт, что у вас нет опыта работы с C, немного беспокоит. Вы уже знаете java, так что я бы не стал зацикливаться на C#. Скорее всего, вы не знаете языков логики, таких как Prolog, но он не очень востребован на рынке. Итак, мой список в порядке наибольшей важности:

C

ML

Erlang

Prolog

Python

2
ответ дан 5 December 2019 в 04:30
поделиться

Как насчет F # , который работает на платформе .Net.

2
ответ дан 5 December 2019 в 04:30
поделиться

Для обучения вы не сможете победить CLU. Это работа, за которую Барбара Лисков получила премию Тьюринга. Ее команда решила кучу проблем, которые актуальны и сегодня, и, как уже говорилось об Algol 60, CLU был улучшением по сравнению с большинством его преемников.

Хороший способ окунуться в воду - прочитать раннюю статью Лискова и Зиллеса , хотя имейте в виду, что система статических шрифтов еще не была разработана, и это одна из еще интересные штуки.

0
ответ дан 5 December 2019 в 04:30
поделиться

C# звучит классически - вы его не знаете, и он широко используется, так что это может помочь вам в резюме. Я бы также рассмотрел Ruby, но исключил бы VB6 (устаревший).

5
ответ дан 5 December 2019 в 04:30
поделиться

Теперь, когда вы объяснили свои цели, спасибо, я взвесу:

Выучите один (или больше, если вы хотите) Haskell, Lisp или ML в указанном порядке предпочтения. Любой из них достигнет ваших целей - заставит вас задуматься о программировании по-новому, и все или любой из них идеально подходят для реализации компиляторов (см. SICP, Appel's Implementing a Modern Compiler in ML).

Функциональные языки (на мой взгляд, это справедливо) широко используются в академических кругах из-за их хороших свойств. Я думаю, что Haskell сейчас самый популярный. Запрыгивайте на подножку, поездка будет интересной и станет хорошей подготовкой к выпускной работе.

4
ответ дан 5 December 2019 в 04:30
поделиться

Еще одним интересным языком может быть Smalltalk.

5
ответ дан 5 December 2019 в 04:30
поделиться

Ruby. Это чистый ОО и имеет некоторые замечательные возможности, которые не так легко найти в других языках, такие как блоки кода, миксины и отличный API мета-программирования. Это классика компьютерных наук, вашим преподавателям понравится ваш выбор.

16
ответ дан 5 December 2019 в 04:30
поделиться

Когда я учился в университете, мы начали с Lisp, что показалось мне очень странным (я много программировал до поступления в университет). Через несколько недель я начал понимать элегантность Лиспа - синтаксис языка чрезвычайно прост, что позволяет сосредоточиться на алгоритмах и концепциях. По сути, Лисп - функциональный язык, в отличие от императивных языков, которые используются в основном, что заставляет по-другому относиться к программированию.

Для меня лично понимание концепций программирования, которое я получил на курсе Лиспа, было чрезвычайно ценным во всех разработках на различных языках, которые я делал с тех пор, поэтому мой голос - за Лисп.

2
ответ дан 5 December 2019 в 04:30
поделиться

Каждый язык полезен (даже GolfScript ... шучу)

Я бы порекомендовал вам любой (и все) из

  • C
  • C ++
  • C #

, потому что эти языки очень универсальны и широко используются.
Обратите внимание, что, имея одну и ту же букву в своем имени и некоторые синтаксические сходства , каждый из этих языков демонстрирует очень отличную семантику, характеристики и цели . Это верно даже для C и C ++, которые принадлежат к одному «семейству» и часто называются C / C ++.

Несмотря на то, что языки этой серии довольно разные индивидуально, предлагают неполное, но проницательное «резюме» «эволюции» императивного программирования и введение в некоторые ключевые парадигмы и концепции .
Слово « Резюме » используется здесь вольно, поскольку многие из этих концепций предшествовали даже языку C, хотя и не в мейнстримовом стиле. Кроме того, « Эволюция » не следует понимать в его обычном смысле линейного прогресса к лучшему и где новое заменяет старое.
В любом случае моментальный снимок этой эволюции в основных языках можно перечислить следующим образом

  • с указателями C:
    ,
    {{1 }} абстракция языка ассемблера,
    небольшая, но полезная библиотека времени выполнения, обслуживающая несколько основных типов и утилит того времени (в основном, манипуляции со строками, ввод-вывод ФАЙЛОВ, математические функции, явное управление памятью)

  • с C ++
    объектно-ориентированное программирование,
    шаблоны,
    «встроенная» поддержка общих структур данных и контейнеров,
    { {1}} обработка исключений,
    некоторая безопасность типов (в основном применяется во время компиляции)

  • с C #
    автоматическое управление памятью,
    обширные «стандартные» и «расширенные» библиотеки (отражающие огромное разнообразие и широту систем и технологий, связанных с современными приложениями: XML, Интернет-протоколы, событийно-ориентированные структуры, доступ к базам данных, шаблоны проектирования и многие другие)
    { {1}} приступы фу функциональное программирование,
    строгая типизация, в том числе во время выполнения,
    рефлексия / самоанализ,
    несколько размывают различия между языком и фреймворками.


Редактировать примечание:
Моим первоначальным намерением при редактировании этого ответа было разъяснение того факта, что C, C ++ и C # по сути являются очень разными языками. Идея о том, что эта серия представляет собой приблизительное и несколько проницательное резюме основного программирования за последние 35 лет, пришла мне в голову, когда я думал об этих языках.Я приношу свои извинения Петру Пеллеру за то, что он расширился далеко за пределы того, что, возможно, было намерением его первоначального поста; пожалуйста, не стесняйтесь отменить редактирование и / или изменить его иным образом, если это вам не нравится!
С уважением,
- mjv-

3
ответ дан 5 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: