topics

全部话题 - 话题: clj
1 2 末页 (共2页)
s*******n
发帖数: 344
1
有人用clj写web么?比如用luminus,ring这些框架
是不是比node,rails,django 麻烦太多
t**r
发帖数: 3428
2
来自主题: Programming版 - 现在真没必要再学CL了clj足够了
现在真没必要再学CL了clj足够了
n*****3
发帖数: 1584
3
来自主题: Programming版 - 现在真没必要再学CL了clj足够了
clj I guess is clojure;
what is CL?
t**r
发帖数: 3428
4
最近在用clj干活。顺便看了看macro 倒吸一口冷气。这玩意真心掌握不了。
h*i
发帖数: 3446
5
宏其实很简单的,就是一种编译前的预处理语法而已。
但Clojure社区现在不鼓励用宏了。在Clojure早期的时候,很多库还是用了不少宏的,
比如Storm,compojure,等等。但现代的clj库几乎都不用宏了。
这有两个原因:
1. Clojure程序员追求好的composibility。在组合能力上,宏不如函数,而函数又不如
纯数据,所以现在用Clojure实现一个功能的优先级是:
data > function > macro
能用数据作的事不用函数做,能用函数的不用宏。比如datomic,onyx等等项目,都是
以数据结构为中心的,比较declarative。
2. 从历史上看,宏的日常使用容易造成社区分裂,参见Common LISP。
总而言之,用Clojure不用宏没关系。
z****e
发帖数: 54598
6
scala很多关键字就是pattern的简写
还不只pattern,一堆乱七八糟的经验也都往里面凑
pattern如果搞不定的话,scala就更苦逼,app层面的东西比较多
clj倒是有点像j2ee,相对容易不少,尤其是用过spring的话
clj把语法背背,可以动手了,当然不是乱写static那种用法
scala难不少,各种隐形的规则很多
那23种很多都是用来做app的,其实就是c++版本patterns的翻版
做游戏比较合适,java也就是android上用得多一点
java有其他版本的pattern,比如j2ee的pattern,那个理念跟clj不少很像
反正我觉得scala难度很高,clj难度没有那些pattern高
android和swift的pattern就跟那23种很接近
z****e
发帖数: 54598
7
来自主题: Programming版 - FP 之我见 (长)
说这些都扯蛋
就从你们两个自身说起
coltzhao你除了scala你还接触过什么?
rxjava,clj你写过么?应该是没有吧
hci,你除了clj你还写过什么?
rxjava,scala你写过么?应该也是没有写过吧?
我现在的vert.x里面几个mod里面有clj,有scala,还有rxjava
我好歹还是写过,然后把这些东西放到同一个环境中对比后观察后的结果
你们两个除了自己那个语言以外,接触过其他两个?
整个thread说下来就逐步沦为扯蛋一类了
也就是hobocs说的rxjava的那几个贴值得看看
至少他还跑去看源码,说这里可能会有问题,我以后再看看hoho
剩下的没做过,也就是凭空想象,变成扯蛋的一种
洋洋洒洒好像很多,但其实很多都是胡扯
变成传教,号召群众入教做教徒
H******7
发帖数: 1728
8
来自主题: Programming版 - living social is hiring cljure engineer
strorm streaming 不是clj 写的?
我知道storm是 clj的。
s*******n
发帖数: 344
9
来自主题: Programming版 - clojure能单独做大系统么?
2爷放弃clj了?
在g家 有用clj的项目么?用scala很多?
z****e
发帖数: 54598
10
那些括号放在js里面就是callback hell
金字塔形状的东西,java里面就是try catch
所以现在都提倡flat,要扁平化,但是clj要flat,好像有很大难度
唯一可以聊以自慰的就是说clj是括号,只占一个字符位置
缩紧的话要4-8个字符,所以很快就消耗掉了空间
fp这个其实是大问题,用observer pattern就没这个问题
z****e
发帖数: 54598
11

help a lot难道不是我们需要的?
java8未必有,rxjava搭配上去就有不少了
但是完全替代r,只能指望renjin了
或者其他啥东东,现阶段是没办法直接跑r脚本的
还有就是全堆到内存里,这个恐怕吃不消
还是要一点一点弄出来处理,map reduce那些东西
还有些你需要借助于ql,比如select这种
sql和cql这些比较顶用,这个问题clj应该也是一样的吧?
clj有完全替代dplyr的东西?好像没听说
z****e
发帖数: 54598
12
map -> {key:value}
list -> [value]
json不就是这样的?
你觉得json直观还是clj定义的结构直观?
我觉得json更清晰一点
name多没办法,key怎样不都是一个名字?
clj用;代替//表示注释比较神奇

,
z****e
发帖数: 54598
13
来自主题: Programming版 - 最expressive的三大语言
c还有fp的爱好者往往喜欢秀智商
动不动就是这辈子不学啥,写尽多少行也宛然
言外之意就是你看我懂这个,我多牛逼,你不懂,所以宛然了
我前一段搞了搞clj,没觉得自己以前有多宛然
倒是因为clj不能马上投入生产,尤其是在app生产上
觉得浪费了不少时间,后来rxjava加了这些功能之后
很快就转了过去,因为变量和扁平化实在是太可爱了
当然还有最亲爱的debug,写app的利器
最后聊点大道理
人活一辈子,最后人看的是产出,不会因为会多少东西而怎样
因为会东西那是空的,是输入,最后看的是输出
输出是真正造福大众的东西,也是大众用来衡量并反馈的标准
产出多少,最后也就收获多少,而不是输入多少,就收获多少
太多人把会不会当成一种牛不牛的标准,这种价值观是错误的,应该予以批判
应该看输出,伟人之所以是伟人,都是因为他们的输出,而非输入
没有人在乎牛顿是不是博士,读了啥学校,说的都是牛顿发现了微积分
至于输入,谁在乎,都记不起来牛顿是不是博士了
而实践之后,很快就会发现,很多东西并不是其他人嘴巴上说的那么美好
往往有这样那样的问题,而一旦这些问题被摆到台面上来,很容易就会被他们所否认
比如我从来不... 阅读全帖
z****e
发帖数: 54598
14
来自主题: Programming版 - FP 之我见 (长)
还在硬拗
说说record和class吧
这两个其实fp和oop都不用
虽然看上去很像
先说fp
fp的理念是information,不是对象,也谈不上class,没有变量
写过clj应该知道,clj不提倡你用什么record
因为这个东西长得像class,你应该尽量把information放入map
这样不会隐藏其内部结构,还有list,就像json一样
所以record的存在很尴尬,因为不提倡用,你不应该写出来
这是一,其次record即便要写,你也要写成json那样
各种扁平化,不依赖不继承,尽量immutable
从本质上说只是一个information的集合体
不是现实中对象的映射,所以说record是java里面的class纯粹就是生搬硬套
这么理解的话,显然oop的习惯影响了fp,仅仅因为都有new就说这两个是一样的
这个是错误的,fp的information的概念没有形成
其次oop
oop虽然有class,但是oop也已经逐步摆脱new这种做法了
之所以摆脱,一个重要原因就是func和entity的分离
spring就是管理func的工具,包装func的object缺... 阅读全帖
z****e
发帖数: 54598
15
老大爷的纯意思是lisp
scala显然不纯
clojure做主要web产品的我好像没怎么听说
vert.x这种都是边支持clj然后支持其他的
老大爷意思应该是只用clj来写web server
类似ror只能用ruby酱紫
表装傻
z****e
发帖数: 54598
16
来自主题: Programming版 - go也是三种paradigm混合的语言
是这样的呀,不同的语言在不同的地方选择了不同的option
最后变成了不同的东西,以满足不同人物的需要
简单说就是oop部分是java(static+mutable),fp部分是clj(dynamic+immutable)
脚本部分是groovy(dynamic+mutable),scala部分是(static+immutable)
当然不是绝对,但是提倡时这样,很好玩啊,四个东西分开了
然后各种框架是j2ee那些,但是这里面scala最有野心
scala最好玩的就是尝试把这一切都给做了,做成一个super超集
变成java+clj+j2ee,甚至现在开始打算包括脚本了,结果很热闹
一切的争议其实都是围绕着object的存在感
object在fp中是被批判的,因为会隐藏其内部属性
所以建议都用map/list etc.
但是我不同意这种看法,我觉得object应该存在
因为diversity,把人简化成一个map/list
变成一组冷冰冰的数字和符号,那这个有些不太对
我相信从属关系才是本质,就像我们人这个皮囊包括了很多内脏一样
上帝造人的时候就是oop啊,细胞也是一个包一个
还有就是... 阅读全帖
p*****2
发帖数: 21240
17
来自主题: Programming版 - go channel和clojure core.async哪个好

code没啥区别。但是clj里操作可以是blocking的,go里都是async的。为了保证async
,clj里要做更多的工作,而且也不是很容易。
l*****g
发帖数: 78
18
Plate: CLJ 9273
State: MI
Email: l*****[email protected]
多谢楼主了!
l***i
发帖数: 1309
19
来自主题: JobHunting版 - spoj的面试题在面试中常见吗?
楼上说的CLJ是去年IOI第一名么。topcoder top10的水平。
q****p
发帖数: 4536
20
查了下, 我们的 Heating: Forced air unit
Heating & Cooling
Exterior Unit 1: JANITROL CLJ-1A MFD 2004
Exterior Unit 2: JANITROL CPLJ30-1A MFD 2004
Interior Unit 1: (AT ATTIC) JANITROL GAS-FIRED MFD 2004
Interior Unit 2: (AT ATTIC) JANITROL HEAT-PUMP AR4FCB2 00A-1 MFD 2004
这到底是用电还是气的?
v*****r
发帖数: 2325
21
来自主题: Programming版 - Java EE这东西还有必要学吗
no wonder kafka is written in scala and storm is written in clj.
language along with its libraries can be considered a technology or a tool,
isn't. if you have ever done home improvement, you know how important it is
to have right tool for your job. so coming out of comfort zone to pick up
new tools is a good act.
while guys in big/old companies stay conservative about using new
technologies/tools and accumulating tech debt, guys in startups are in
different end of spectrum making spirit of inno... 阅读全帖
z****e
发帖数: 54598
22
来自主题: Programming版 - 写脚本真麻烦
主要是因为clj我还不熟练
而且同事没人懂
我用了,谁来维护?我?
还是不要了,我可不想半夜一两点被叫起来
m******t
发帖数: 635
23
来自主题: Programming版 - Go被人吐槽了
我下个月争取到一个小项目,打算后端用clojure,前段用clojurescript+om。om是
cljs对Facebook react的封装, 月底给大家update
z****e
发帖数: 54598
24
来自主题: Programming版 - 真有人用Vert X么?
我用得很好呀
上线了几个项目
没有问题
大概是2-3个clj mods
rxjava刚开始用,大概2个mods
scala只有一个mod,跟spark做接口
dart转译成js,然后包装成一个mod做web
传统java有一个thymeleaf做template的mod
最大的问题不是productivity的问题
因为vert.x可以跟任何项目做对接
你实在不行的话,直接把vert.x变成secondary component也就是一分钟的事
但是目前还没有发现有类似的问题,一直作为一个司令部一样的存在
而且内置bus,很顶用呀
最大的问题是ide的支持,eclipse麻痹的不支持多个语言同时存在
你比如建一个.py和.rb文件同时放在eclipse的目录下
eclipse是没有办法同时给你各种高亮伺候的
所以每个mod还是要分开,除此之外,没有其他大的问题
楼上的都没用过,都在瞎bb
z****e
发帖数: 54598
25
来自主题: Programming版 - 真有人用Vert X么?
clj的问题很明显,金字塔,非常讨厌
rxjava的flat很讨喜
rxjava更新很频繁,很活跃,我很喜欢
vert.x 3的milestone 2已经出来大概一个月了
很快3就会下线,到时候跟着升级就是了
据说一般的脚本也可以打成jar了
没试过
z****e
发帖数: 54598
26
来自主题: Programming版 - 真有人用Vert X么?
vert.x clj的hello world
(ns example.server
(:require [vertx.http :as http]))
(-> (http/server)
(http/on-request
(fn [req]
(let [uri (.uri req)]
(-> req
(http/server-response)
(http/send-file (str "webroot/" (if (= "/" uri) "index.html" uri
)))))))
(http/listen 8080))
看到))))))了没有?
这就是金字塔的顶点
z****e
发帖数: 54598
27
[]
{}
我都用过
json
xml
我也都用过
其实严格说来
你说这些是在程序员脑袋中
这个是不对的
java的map, set这些
你直接print出来,其实也都是[],{}这些
如果不打印,写在程序里面
那就是用字符来替代符号
你喜欢看map.put(key,value)还是{key:value}的区别
我觉得前者更为直观,我当初弄clj时候,经常为了查询一些特殊符号啥意思而苦恼半天
因为特殊符号在搜索引擎里面,往往有其他意思
相比之下,map.put只要iq没问题,都能看懂,{:}可不一定
主要是你想的跟作者想的,未必是一回事
符号多未必是好事
z****e
发帖数: 54598
28
java的try catch金字塔我比较少见过超过3层的
leiss说他那有30层的callback,这个太牛了,五体投地
你自己说,clj你的嵌套最多多少层
flat对于oop来说很容易,反正都是object
抓出来丢给一个object,然后单独切割成一行
搞定,而且大多数人也都是这么搞
func你这么写的不多吧?多数人还是给你一层一层套下去
形成一个金字塔一样的形状,不得不在缩进上做割舍
对比java那个非常misleading,因为java要写成这样不是不可以
但是一般人不这么写
z****e
发帖数: 54598
29
我说的是{key:value}的{:}
不是:tag,好吧,这是java7
我例子说得不好,就是{}吧
clj应该是{key value, anotherKey anotherValue}
这个其实不直观,因为{}可以有很多意思
[]等价于list也不直观
z****e
发帖数: 54598
30
我的json都是自动生成的
没有自己手写过撒,所以不会出现少写多写,这种错误
其实声称xml也无所谓,对我来说
顺便,你还是写个,好,否则你这个key value key value
如果数量多了,弄错一个就麻烦了,尤其是不少时候key和value本身就很难区分
都是类似的type的时候
其实clj通过:key value加多一个:tag来标示tag,:和,有啥本质区别?
逗号会漏,:一样会漏
z****e
发帖数: 54598
31
STABLE RELEASE 0.31.1
老样子,把版本号好好观赏下,第一个数字是啥?
vert.x的plugin太难做了
因为兼容一堆语言,clj的plugin都没搞好
vert.x只能继续等下去
不过如果坚持用 java的话,vert.x倒是很容易搞定
z****e
发帖数: 54598
32
来自主题: Programming版 - FP的好处是不是就是Concurrency?
我也没怎么遇到过抱怨ide的人
不会用,没用过的除外的话
你是第一个
你见到虫子他们抱怨过eclipse麻烦吗?
也就是你,天天说内存不够,跑不动ide
好意思,学ide和学clj哪个更简单?
ide还用学么?

Clojure
z****e
发帖数: 54598
33
来自主题: Programming版 - FP的好处是不是就是Concurrency?
给过你例子了
比如当你写一个app,尤其是游戏,跑一轮要10多分钟的时候
你没有debug简直是噩梦,如果再具体一点,比如做一个斗地主
你打扑克,这个没有debug怎么搞?那一轮很容易上10分钟
clj很多例子居然还是用swing做例子,fp和匿名类这些在app的应用上倒是不少
如果脱离了ide,用console.log的方式debug会把自己累死
swift比起来简直太爽了,我左边开着屏幕,右边直接改,改完就看到效果了
做起来飞快,android studio还是慢一点,但是也不可或缺啊
没有debug这搞啥,你何苦要因噎废食捏?
顺便,dumbcoder看来还是没有行动起来去实现他的游戏,哎,杯具
还有变量,扁平化,这些问题都实实在在,变量使得思考变简单
扁平化使得代码变工整,pure fp感觉天生就不愿意扁平化
你看例子中各种括号的嵌套,而rxjava很早就在琢磨如何解决这个问题
而且大受欢迎,搭配合适的工具可以让生活更美好

eclipse
z****e
发帖数: 54598
34
来自主题: Programming版 - 最expressive的三大语言

且不说你说的这个数据是否真实存在
就说你自己,你不敢碰scala就是一个例子
scala在很多地方效率明显超过clj
就是代码量,各种implicit,可以很fancy
dsl都可以搞出来,代码量进一步压缩
z****e
发帖数: 54598
35
来自主题: Programming版 - 最expressive的三大语言
你就是不敢碰scala
到现在你还是不敢碰scala,哪怕你已经知道了scala比clj更省代码
这个客观事实你否认不了
这种水文没空看,我就看你做什么,不看你说什么
talk是很misleading的,水文你要我可以写出很多来
很容易的
z****e
发帖数: 54598
36
来自主题: Programming版 - 最expressive的三大语言
how many lines of code change in each commit.
fp里面一行相当于其他语言多少行?
你就继续骗吧
反复说要flat,这样对比才相对公平
那种(((((...)))))的算一行,改了五六处只算一行的改动,这个显然偏向于fp啊
不科学,其他p改一处就一行,应该把列的宽度也考虑进去
列当然也是代码量的一部分,怎么能只考虑行捏?
应该数数字数比较科学
你用r建模,然后用clj再写一遍对吧?
scala可以做到你根本连翻译都不用,直接把r写成dsl
然后执行,你觉得哪个代码量更少?
我说的都是你的例子,按照你的实际环境来举例
你举的例子都是网络水文,那种宣传文章很容易找的啦
你一直躲开你自身的实际需要很说明问题
z****e
发帖数: 54598
37
来自主题: Programming版 - FP 之我见 (长)
时间久了你会发现这个帖子其实说得很对
immutable非常蛋疼,你一想变量就出问题
oop直接映射到代码中去,fp就不让你这么做,就各种纠结
用还是不用呢?scala允许你用,但是那样就不纯粹了呀
clj压根不让你用,所以游戏,simulation这种领域都不适合fp
oop非常合适,reactive,比如event driven这种就适合fp
发信人: liliput (粒粒菩提之军委主席), 信区: Programming
标 题: Re: scala很牛啊
发信站: BBS 未名空间站 (Tue Jun 17 00:41:59 2014, 美东)
不需要懂。这玩儿没实战意义。当年老师天天说immutable,monad,stream怎么怎么好
,几十年下来,原来预测的医药和航天、精密仪器等有可能火的行业都没火。
我粗鄙的认为,搞懂function as a first class citizens,懂map, filter, fold足
够了。industry就是industry,不是academia,没必要死楸immutable、monad。
z****e
发帖数: 54598
38
来自主题: Programming版 - FP 之我见 (长)
我很清楚滴知道fp怎么用,包括clj怎么用
但是你显然不知道rxjava解决了fp的什么问题
你对付那些问题的方式要么否认,要么就转进
比如“我从来不debug”,“不能再简单了”
我看了rxjava,我觉得比fp做得更简单
可以说rxjava本身就是fp的一种借用
另外对比不是要尽量公平嘛?
vert.x是多好的一个公平竞技的平台啊
你不懂的话,先了解了解再说
z****e
发帖数: 54598
39
来自主题: Programming版 - FP 之我见 (长)
一般oop里面当func部分和实体部分分离之后
实体部分一般不会用interface,ejb用过,吃饱了撑着
entitybean,所以挂了,大多数时候都是pojo和set/get方法
只有func部分才需要interface,那这块跟fp就很接近了
func套的object只是一个name space而已了
所以fp和oop一个显著区别就是object或者class这个东西允许不允许存在
这个没啥好争论的,swift就有,clj就没有(除了java部分,这个没办法)
这个才是从语法上最大的差异,而不是故意混淆protocol和interface
看来hci的java基础不行啊,这10多年java都在写啥东西?
z****e
发帖数: 54598
40
来自主题: Programming版 - FP 之我见 (长)
你用object的思维去写fp累不累?
clj可以直接调用java的class
你不需要强行把两个概念混为一谈
否则record就没有必要存在了
多此一举嘛
p*****2
发帖数: 21240
41
clj不纯
z****e
发帖数: 54598
42
定义上手
真正上手干活光会语法还是不够
还是要会api和常用的工具,比如vert.x的clj接口
p*****2
发帖数: 21240
43
考虑过,但是有node这种神器,还需要别的语言写web吗?
z****e
发帖数: 54598
44
vert.x
啥都能用
s*******n
发帖数: 344
45
那clojure不写web有啥好玩的项目适合写?
p*****2
发帖数: 21240
h*i
发帖数: 3446
47
去年底的调查表明,78%以上的Clojure用户是在用Clojure来写Web。
Clojure的哲学是用简单小型的模块来自己组装应用,所以node, rails, djingo那种包
含一切的Web框架不是很流行,不过也是有的,比如说immutant,底层用的是undertow。
在server端的,ring是大部分Clojure Web共用的底层模块,在ring的基础上,
compojure是常见的routing模块, hiccup是很常用的html DSL,等等。其他的各种web
有关的小的库很多,几乎什么功能都有几种不同的选择,看你自己的需求。
Browser端,现在基于react.js的ClojureScript框架很火(om和reagent),原因是
clojurescrip的immutable数据可以让diffing算法比native javascript要快很多。
这样的话,基于react.js的clojurescript框架比react.js本身还要快,听起来这是很
counter-intuitive的,但理解了immutable data, 就会发现其实很自然。di... 阅读全帖
p*****2
发帖数: 21240
48

undertow。
web
你这个说的就有点无知了。虽然Clojure确实不错,但是也不是这么捧的。
h*i
发帖数: 3446
49
这个无知,那个SB,我看你要和goodbug看齐了。

★ 发自iPhone App: ChineseWeb 8.7
p*****2
发帖数: 21240
50

好吧。
1 2 末页 (共2页)