Обзор языка программирования Scala
От: Михаил Купаев (перевод) Россия www.rsdn.ru
Дата: 23.05.05 11:20
Оценка: 755 (13)
Статья:
Обзор языка программирования Scala
Автор(ы): Martin Odersky, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, Stephane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger, http://scala.epfl.ch
Дата: 22.05.2005
Язык Scala был создан в 2001-2004 гг в лаборатории методов программирования EPFL. Он стал результатом исследований, направленных на разработку более хорошей языковой поддержки компонентного ПО. С помощью Scala мы хотели бы проверить две гипотезы. Во-первых, мы считаем, что язык программирования компонентного ПО должен быть масштабируемым в том смысле, что должна быть возможность с помощью одних и тех же концепций описать как маленькие, так и большие части. Поэтому мы сконцентрировались на механизмах абстракции, композиции и декомпозиции вместо введения большого количества примитивов, которые могут быть полезными только на каком-то одном уровне масштабирования. Во-вторых, мы считаем, что масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование.


Авторы:
Михаил Купаев (перевод)

Аннотация:
Язык Scala был создан в 2001-2004 гг в лаборатории методов программирования EPFL. Он стал результатом исследований, направленных на разработку более хорошей языковой поддержки компонентного ПО. С помощью Scala мы хотели бы проверить две гипотезы. Во-первых, мы считаем, что язык программирования компонентного ПО должен быть масштабируемым в том смысле, что должна быть возможность с помощью одних и тех же концепций описать как маленькие, так и большие части. Поэтому мы сконцентрировались на механизмах абстракции, композиции и декомпозиции вместо введения большого количества примитивов, которые могут быть полезными только на каком-то одном уровне масштабирования. Во-вторых, мы считаем, что масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование.

09.08.07 15:33: Перенесено модератором из 'Философия программирования' — Odi$$ey
Re: Обзор языка программирования Scala
От: Mika Soukhov Stock#
Дата: 23.05.05 11:24
Оценка: 24 (1) +1
Здравствуйте, Михаил Купаев (перевод), Вы писали:

Источник должен быть полным http://scala.epfl.ch/docu/files/ScalaOverview.pdf
Re[2]: Обзор языка программирования Scala
От: Gaperton http://gaperton.livejournal.com
Дата: 23.05.05 12:24
Оценка: +1 :)
Здравствуйте, Mika Soukhov, Вы писали:

MS>Здравствуйте, Михаил Купаев (перевод), Вы писали:


MS>Источник должен быть полным http://scala.epfl.ch/docu/files/ScalaOverview.pdf

...и быть оригиналом .
Re: Обзор языка программирования Scala: очепятки
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.04.06 09:02
Оценка: 1 (1)
Здравствуйте, Михаил Купаев (перевод), Вы писали:

МКП>Статья:

МКП>Обзор языка программирования Scala
Автор(ы): Martin Odersky, Philippe Altherr, Vincent Cremet, Burak Emir, Sebastian Maneth, Stephane Micheloud, Nikolay Mihaylov, Michel Schinz, Erik Stenman, Matthias Zenger, http://scala.epfl.ch
Дата: 22.05.2005
Язык Scala был создан в 2001-2004 гг в лаборатории методов программирования EPFL. Он стал результатом исследований, направленных на разработку более хорошей языковой поддержки компонентного ПО. С помощью Scala мы хотели бы проверить две гипотезы. Во-первых, мы считаем, что язык программирования компонентного ПО должен быть масштабируемым в том смысле, что должна быть возможность с помощью одних и тех же концепций описать как маленькие, так и большие части. Поэтому мы сконцентрировались на механизмах абстракции, композиции и декомпозиции вместо введения большого количества примитивов, которые могут быть полезными только на каком-то одном уровне масштабирования. Во-вторых, мы считаем, что масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование.


Пример с trait-ом Bool и объектами False и True. В описании аргумента методов нет пробела между ключевым словом def и именем x:
def &&(defx: Bool) : Bool;

а нужно
def &&(def x: Bool) : Bool;

Я пока допер что defx -- это два разных слова, чуть не свихнулся в попытках понять, как Scala догадывается, что идентифкатор defx указывает на необходимость своего ленивого вычисления

Не переведенная фраза в тексте.

Вот две реализации класса GenList:

Here are two implementations of the GenList class:


object Empty extends GenList[All]
{
  def isEmpty: Boolean = true;



SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Обзор языка программирования Scala: очепятки
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 04.04.06 08:11
Оценка: 1 (1)
Здравствуйте, eao197, Вы писали:

Еще один пропущенный пробел:

Переменные и свойства

Если каждая операция в Scala – это вызов метода, то как насчет разыменования и присваивания переменных? На самом деле, при работе с членами классов эти операции также расцениваются как вызовы методов. Для каждого определения переменной varx:T в классе Scala определяет методы setter и getter:



SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Обзор языка программирования Scala
От: Максс  
Дата: 06.06.05 10:34
Оценка: +1
Зря вы так.
Матеиал очень интересный. Хотя бы что касается
"масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование". Скажем, определение функций, параметрических относительно различных типов; проблема внешней расширяемости и т.д. Многие концепции заставляют очень серьезно задуматься...
Re: Обзор языка программирования Scala
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 23.05.05 12:28
Оценка:

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


Если за 30 лет с того времени, как было сказано, что система должна состоять из равноправных кусочков (объектов) на микро и макро уровне, этого никто не доказал, то и мужиков врядли что получится
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[2]: Обзор языка программирования Scala
От: _vovin http://www.pragmatic-architect.com
Дата: 23.05.05 12:51
Оценка:
Andrei N.Sobchuck wrote:
>

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

>
> Если за 30 лет с того времени, как было сказано, что система должна состоять из равноправных кусочков (объектов) на микро и макро уровне, этого никто не доказал, то и мужиков врядли что получится

Дальше в том же духе:

Scala uses a pure object-oriented model similar to
Smalltalk’s: Every value is an object and every operation
is a message send.


Another aspect of Scala’s unified object model is that every
operation is a message send, that is, the invocation of
a method. For instance the addition x + y is interpreted as
x.+(y), i.e. the invocation of the method + with x as the
receiver object and y as the method argument. This idea,
which has been applied originally in Smalltalk, is adapted
to the more conventional syntax of Scala as follows.


From Smalltalk [17] comes the concept of a uniform
object model.

Posted via RSDN NNTP Server 1.9
Re[2]: Обзор языка программирования Scala
От: Kupaev Россия www.rsdn.ru
Дата: 23.05.05 14:33
Оценка:
Здравствуйте, Mika Soukhov, Вы писали:

MS>Здравствуйте, Михаил Купаев (перевод), Вы писали:


MS>Источник должен быть полным http://scala.epfl.ch/docu/files/ScalaOverview.pdf


Спасибо, исправлено.
Re[4]: Обзор языка программирования Scala
От: vdimas Россия  
Дата: 09.08.05 11:55
Оценка:
Здравствуйте, Максс, Вы писали:

М>Зря вы так.

М>Матеиал очень интересный. Хотя бы что касается
М>"масштабируемая поддержка компонентов может быть предоставлена языком программирования, унифицирующим и обобщающим объектно-ориентированное и функциональное программирование". Скажем, определение функций, параметрических относительно различных типов; проблема внешней расширяемости и т.д. Многие концепции заставляют очень серьезно задуматься...

Вообще, роль языка как-то четко не вырисовывается. Они попытались различные идеи собрать в одном месте, да и еще сверху платформ, вполне самодостаточных со своими идеями.

На уровне имплементации и переносимости меня убил пример с разницей семантики Substring(int, int) и substring(int, int). Понятно желание дать возможность писать переносимый код, но для этого нужно было как-то зафиксировать семантику для примитивных типов хотя бы (даже если они и выполнены как реализации классов в .Net и Java). Т.е. жесткая последовательность в таких вопросах всяко лучше, чем приведенный пример незаметных и подлых граблей.

В плане миксинов +1. И ограничения на миксины и их реализация — все логично, я бы на месте Java и .Net разработчиков этих платформ присмотрелся бы.

Насчет остального... Немного юморно выглядят попытки расширять ограниченные ОО-языки встроенными спец-конструкциями, которые в том же С++ легко выражаются с помощью базовых (и можно выразить еще теоретически бесконечное множество паттернов и конструкций). Может, стоит получше прорабатывать базовые конструкции языка?
Re: Обзор языка программирования Scala
От: AlexTarvo  
Дата: 15.08.05 05:38
Оценка:
>Мы отказались от этого, поскольку хотели сохранить как инвариант то, что интерпретация значения подкласса как экземпляра его суперкласса не меняет представления значения.

Неужто это нельзя было как-то перевести на литературный русский/английский язык или хотя-бы на программерский жаргон?
Re[2]: Обзор языка программирования Scala
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.08.05 11:03
Оценка:
Здравствуйте, AlexTarvo, Вы писали:

>>Мы отказались от этого, поскольку хотели сохранить как инвариант то, что интерпретация значения подкласса как экземпляра его суперкласса не меняет представления значения.


AT>Неужто это нельзя было как-то перевести на литературный русский/английский язык или хотя-бы на программерский жаргон?


Попробуй. Получится лучше — заменим.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.