Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Тяпничный Скало-Зуб. / 25 сообщений из 60, страница 1 из 3
19.02.2016, 19:12
    #39175572
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Здарова collegues!

Скала наступает. Уже сверкает в вакансиях. Предлагаю поднять
топик специально для обсуждения вопросов Java/Scala разработки.

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

Во первых - ссылки.


1) Ссылка на сайт фриков и Сан-Франциско которые это всё затеяли
http://www.scala-lang.org/

2) Книга.


Прошу всех энтузиастов попробовать "на зуб" этот гранит науки. Надеюсь
разгрызём совместно.

Ваш коллега,
mayton

P.S. Вы можете тоже сюда писать ваши вопросы.
...
Рейтинг: 0 / 0
20.02.2016, 09:47
    #39175808
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
mayton,

А книга-то где? Так грызть, в сухомятку?
...
Рейтинг: 0 / 0
20.02.2016, 11:06
    #39175870
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Garrickmayton,

А книга-то где? Так грызть, в сухомятку?

Вроде как давать ссылки на скачивание платных книг нельзя. А гуглится легко (правда сходу только pdf).
...
Рейтинг: 0 / 0
20.02.2016, 11:50
    #39175919
Garrick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Alexey Tomin,

А почему именно Scala, а не Groovy, например?
А если про вакансии, то там вообще Python больше "сверкает". В рамках форума может быть Jython?
...
Рейтинг: 0 / 0
20.02.2016, 12:28
    #39175962
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Ну... давайте сюда-же и Groovy.
...
Рейтинг: 0 / 0
20.02.2016, 20:12
    #39176291
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Вот правильная книга по Scala:

https://www.manning.com/books/functional-programming-in-scala

Никак не осилю :)


Groovy - это хорошо, но это та же Java...
...
Рейтинг: 0 / 0
20.02.2016, 21:36
    #39176307
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Диез,

Первой книгой её брать не стоит. Стоило бы сначала саму Скалу освоить.
...
Рейтинг: 0 / 0
22.02.2016, 07:44
    #39176580
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
maytonПрошу всех энтузиастов попробовать "на зуб" этот гранит науки. Надеюсь
разгрызём совместно.


Книга есть... Пробовал...
Как-то не пошло.
В реальном проекте попробовать не удается, т.к. работаю в команде.
А тут важно, чтобы все работали на одном стеке технологий.

maytonВаш коллега,
mayton
P.S. Вы можете тоже сюда писать ваши вопросы.

Если есть проект, то могу поучаствовать удаленно.
Т.к. есть интересные моменты в Scala, но внутренней мотивации не достаточно, что бы изучать самостоятельно.
...
Рейтинг: 0 / 0
22.02.2016, 10:21
    #39176603
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
mad_nazgul, у нас тоже всё уперлость в неготовность команды изучить и использовать
нечто новое.
...
Рейтинг: 0 / 0
22.02.2016, 12:38
    #39176667
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
maytonmad_nazgul, у нас тоже всё уперлость в неготовность команды изучить и использовать
нечто новое.

Я бы не сказал, что это упертость.
Скорее здоровый консерватизм.

Java обучить новичка гораздо легче, чем Scala.

Так скажем новичок севший разбираться с кодом, быстрее разберется с Java-кодом, чем с Scala-кодом.
...
Рейтинг: 0 / 0
23.02.2016, 18:43
    #39177195
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
DoSOfRedRiverДиез,

Первой книгой её брать не стоит. Стоило бы сначала саму Скалу освоить.

Понятно, что надо синтаксис изучать сначала...
Суть в том, что использовать Scala для того, чтобы писать на нем в императивном стиле - это та самая овчинка, что не стОит выделки. Накладные расходы большие, а преимущества незаметны.
Имхо, без погружения в ФП и Type-level, Scala не даёт особых преимуществ перед Java.
Мозги надо вывернуть, короче говоря :)
...
Рейтинг: 0 / 0
23.02.2016, 19:00
    #39177200
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Диез,

Это заблуждение. Scala не является pure functional языком. Программирую на нём, вполне можно обойтись без scalaz и теории категорий.
Как-бэ, фишка Скалы в том, что язык сочетает функциональный и объектно-ориентированный подходы, вобрав в себя множество разных фич из других языков. Из FP здесь: иммутабельность, чистые функции, АТД, немного комбинаторов.
...
Рейтинг: 0 / 0
23.02.2016, 20:27
    #39177232
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
DoSOfRedRiverДиез,

Это заблуждение. Scala не является pure functional языком. Программирую на нём, вполне можно обойтись без scalaz и теории категорий.


А я где-то сказал, что Scala - чисто функциональный язык? Как раз наоборот - я и говорю, что на нем можно писать в императивном стиле, но это довольно бессмысленно. Если уж переходить на Scala - то надо использовать возможности по полной.

DoSOfRedRiver

Как-бэ, фишка Скалы в том, что язык сочетает функциональный и объектно-ориентированный подходы, вобрав в себя множество разных фич из других языков. Из FP здесь: иммутабельность, чистые функции, АТД, немного комбинаторов.

Я знаю, какие возможности есть в Scala (кстати, чистоту функций язык никак не контролирует)
Меня больше интересуют path-dependent types, high-order types и прочие фичи компилятора. Очень уж заманчиво отлавливать ошибки в compile-time, а не в логах продакшн-серверов.
...
Рейтинг: 0 / 0
23.02.2016, 22:49
    #39177277
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Диез,

Я к тому, что идеологически Скала не задумывался как ФП язык. Достаточно Programming in Scala полистать, чтобы убедиться. Хотя тот же scalaz весьма убедительно смотрится.

ДиезЯ знаю, какие возможности есть в Scala (кстати, чистоту функций язык никак не контролирует)

Я бы добавил аннотацию. Вроде даже какие-то подвижки были - результатов не видно.


ДиезМеня больше интересуют path-dependent types, high-order types и прочие фичи компилятора. Очень уж заманчиво отлавливать ошибки в compile-time, а не в логах продакшн-серверов.

Наверное, higher kind types имеются ввиду? В Dotty, кстати, обещают нормальные dependent types.
...
Рейтинг: 0 / 0
24.02.2016, 10:19
    #39177470
Диез
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
DoSOfRedRiver
Наверное, higher kind types имеются ввиду?
Да, речь о них, конечно.
...
Рейтинг: 0 / 0
24.02.2016, 11:26
    #39177518
grasoff.net
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
...
Рейтинг: 0 / 0
24.02.2016, 11:56
    #39177534
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Он интересен. Но лучше его пустить отдельным топиком.
...
Рейтинг: 0 / 0
02.03.2016, 22:25
    #39184312
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Скалозуб продолжается. Внезапно Scala-порт Card-Raytracer 18105781 появился.
После того как я завершу (ш)кодинг можно будет гнать бенчмарк
и смотреть где и как Scala отстаёт от Java.

Несколько траблов.

Тернарная операция отсутствует.

Вместо (C++)
Код: plaintext
1.
	double p = pow(l % r * (b > 0), 99);




Скала предлагает if- c возможностью возврата значения.
Код: java
1.
var p:Double = pow(l % r * (if (b > 0) 1.0 else 0.0), 99.0)



Я пока еще путаюсь в покрывающих конструкторах, пропертях и свойсвтвах
и авто-выводе типов. Но думаю что к концу (ш)кодинга что-то появится.
...
Рейтинг: 0 / 0
02.03.2016, 23:00
    #39184327
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Хм... если main класс объявлен как синглтон (object) то можно ли его инстанциировать из main ?
Смешно но я завис не на алгоритме а на конструкторах.

Желтым маркером я отметил то где среда ругается.



Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
import java.io
import java.io.{Writer, PrintWriter, OutputStream, FileOutputStream}
import java.lang.Math._

object CardRaytracer(out_:OutputStream,width_:Int,height_:Int) {

    val WIDTH       = 512
    val HEIGHT      = 512
    val SUB_SAMPLES = 64

    var width  = WIDTH
    var height = HEIGHT

    def out:Writer

    // .................................................. bla-bla ...................

    def this(out_:OutputStream,width_:Int, height_:Int) {
        this.width  = width_
        this.height = height_
        this.out    = out_
    }

    def this(out_:OutputStream) {
        this.out = out_;
    }

    def main(args: Array[String]): Unit = {
        def begin = System.currentTimeMillis();
        if (args.length == 0) {
            new CardRaytracer(System.out).process();
            System.err.printf("Elapsed time : %d sec\n",(System.currentTimeMillis()-begin)/1000);
            System.exit(1);
        } else if (args.length == 1) {
            def os = new FileOutputStream(args(0));
            new CardRaytracer(os).process();
            os.close();
            System.err.printf("Elapsed time : %d sec\n", (System.currentTimeMillis() - begin) / 1000);
            System.exit(2);
        } else if (args.length == 3) {
            def os = new FileOutputStream(args(0));
            new CardRaytracer(os, valueOf(args(1)), valueOf(args(2))).process();
            os.close();
            System.err.printf("Elapsed time : %d sec\n", (System.currentTimeMillis() - begin) / 1000);
            System.exit(2);
        }
        System.exit(0);
    }

}



Код: java
1.
2.
3.
Error:(61, 21) traits or objects may not have parameters
object CardRaytracer(out_:OutputStream,width_:Int,height_:Int) {
                    ^
...
Рейтинг: 0 / 0
02.03.2016, 23:23
    #39184335
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
Мужики, у меня плохие новости - Scala никогда не будет мейнстримом, и так и останется в тени Java. Если даже главная компания-идеолог Scala - Typesafe (нынче Lightbend), в которой сидит сам Одерски, дистанцируется о Scala, то чего уж говорить про остальной мир.

На запудривайте себе мозги всякой ерундой.
...
Рейтинг: 0 / 0
02.03.2016, 23:32
    #39184343
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
...
Рейтинг: 0 / 0
02.03.2016, 23:36
    #39184347
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
cdtyjv, вот так вот взял и обломал.
...
Рейтинг: 0 / 0
03.03.2016, 00:20
    #39184370
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
cdtyjv,

По-моему это вы "пудрите мозги". Откуда информация о том, что "Одерски дистанцируется от Scala"?
...
Рейтинг: 0 / 0
03.03.2016, 01:01
    #39184381
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
DoSOfRedRiver, пофиксил object. Отказался от него.

Теперь новая бочина.

Код: java
1.
2.
3.
4.
5.
6.
7.
$ scala\CardRaytracer.scala:180: error: overloaded method value printf with alternatives:

  (x$1: java.util.Locale,x$2: String,x$3: Object*)java.io.PrintWriter <and>
  (x$1: String,x$2: Object*)java.io.PrintWriter
 cannot be applied to (String, Int, Int)
        wr.printf("P6 %d %d 255 ", width, height)
           ^



Всё устал. Пошёл спать.
...
Рейтинг: 0 / 0
03.03.2016, 15:01
    #39185017
DoSOfRedRiver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тяпничный Скало-Зуб.
mayton,

Не нужно пытаться портировать Java код. В Scala есть интерполяция строк:

Код: java
1.
println(s"P6 $width $height 255 ")
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Тяпничный Скало-Зуб. / 25 сообщений из 60, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]