Scala API

Nov 07, 2012 16:09

What's the point of functional programming in Scala, if you can find mutable collections, variables, cycles and returns in almost every source-file of standard scala api? Why is it acceptable in the API, say for performance reasons, and is discouraged in programming in Scala itself?

api, fp, scala

Leave a comment

Comments 6

zhengxi November 7 2012, 16:03:44 UTC
а во многих исходниках библиотек на Java можно встретить sun.misc.Unsafe и арифметику с указателями.

а во многих исходниках библиотек на С++ можно встретить недокументировные #pragma и вообще странные конструкции (вспоминается ваткомоский оператор :> для конструирования 48-битного far-указателя, в современных тоже подобное есть, но сходу вспомнить не могу).

и что?

Reply

moi_drug_daun November 7 2012, 16:34:24 UTC
Просто хочу понять, зачем мне придерживаться ФП, и почему в АПИ этого можно не делать.
Понятно, что пользователям языка нужно абстрагироваться, но я полагал, что аналогичных принципов придерживаются и разработчики АПИ.
Или суть в том, чтобы оградить массового неопытного пользователя от грязной и небезопасной работы?

Reply

zhengxi November 7 2012, 16:50:50 UTC
тут, наверное, очень много причин можно придумать.

2. авторы либ больше общаются с авторами компилятора и кое что знают - какие оптимизации компилятор сделает, а какие лучше хоть и "некрасиво", но сделать руками.

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

Reply


ex_juan_gan November 7 2012, 21:34:34 UTC
Exactly.

But wait, there's scalaz, a totally different world.

Reply

moi_drug_daun November 7 2012, 22:00:37 UTC
Should I skip thorough learning of scala API and go straight to scalaz?

Reply

ex_juan_gan November 8 2012, 03:27:11 UTC
Not sure; the curve is steep.

Reply


Leave a comment

Up