t**r 发帖数: 3428 | 1 jun rao说kafka已经开始用Java代码重写部分code了
因为scala的binary compatability的问题,也就是abi的问题 |
l**********n 发帖数: 8443 | |
p*****2 发帖数: 21240 | 3 scala只适合小团队
【在 l**********n 的大作中提到】 : scala早死早超生啊
|
l**********n 发帖数: 8443 | 4 问题是Scala根本没有必要。
【在 p*****2 的大作中提到】 : scala只适合小团队
|
p*****2 发帖数: 21240 | 5 看干什么
【在 l**********n 的大作中提到】 : 问题是Scala根本没有必要。
|
w***9 发帖数: 804 | 6 scala是滋生神汉,巫婆的土壤。穷乡辟野,装神弄鬼问题不大。人多的地方,肯定要
出乱子。 |
H****S 发帖数: 1359 | 7 Kafka的scala code写的极烂,基本是java way written in scala。说实话如果对于语
言的使用不做一点时间精力上的投资,单纯为了“酷”,不用也罢。
【在 t**r 的大作中提到】 : jun rao说kafka已经开始用Java代码重写部分code了 : 因为scala的binary compatability的问题,也就是abi的问题
|
c******o 发帖数: 1277 | 8 看看kafka的source code, 哪儿像scala?
https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/api/
ApiUtils.scala
def readShortString(buffer: ByteBuffer): String = {
val size: Int = buffer.getShort()
if(size < 0)
return null
val bytes = new Array[Byte](size)
buffer.get(bytes)
new String(bytes, ProtocolEncoding)
}
def writeShortString(buffer: ByteBuffer, string: String) {
if(string == null) {
buffer.putShort(-1)
} else {
val encodedString = string.getBytes(ProtocolEncoding)
if(encodedString.length > Short.MaxValue) {
throw new KafkaException("String exceeds the maximum size of " +
Short.MaxValue + ".")
} else {
buffer.putShort(encodedString.length.asInstanceOf[Short])
buffer.put(encodedString)
}
}
} |
c******o 发帖数: 1277 | 9 说实话,这样写scala,还是用回 java好。 |
N*****m 发帖数: 42603 | 10 老赵,你给refactor一下?
【在 c******o 的大作中提到】 : 看看kafka的source code, 哪儿像scala? : https://github.com/apache/kafka/blob/0.8.2/core/src/main/scala/kafka/api/ : ApiUtils.scala : def readShortString(buffer: ByteBuffer): String = { : val size: Int = buffer.getShort() : if(size < 0) : return null : val bytes = new Array[Byte](size) : buffer.get(bytes) : new String(bytes, ProtocolEncoding)
|
|
|
p*****2 发帖数: 21240 | 11 Scala在performance面前会被瓦解的支离破碎 |
c******o 发帖数: 1277 | 12 这个scala days 我的感觉就是 都是big data analysis.
基本上一半以上是spark/akka
scala还是有点门路的。apache newest top level project (为啥要再有一个和spark
一样用处的东东?)
https://flink.apache.org/也是先有 java/scala api
flink基本是java,很少量scala |
g*********e 发帖数: 14401 | 13 kafka in github is almost java like
They read like articles written by primary school students. |
g*********9 发帖数: 1285 | 14 看过kafka的原代码,那叫一痛苦,indent居然只有两个空格,真不像专业人士写的。
代码质量很一般,也就搞big data的用用还行,丢点数据无所谓,和tibco EMS的可靠
性没法比。
big data里可能hadoop核心代码质量最高。
【在 g*********e 的大作中提到】 : kafka in github is almost java like : They read like articles written by primary school students.
|
z****e 发帖数: 54598 | 15 scala推荐的indent就是两个空格
【在 g*********9 的大作中提到】 : 看过kafka的原代码,那叫一痛苦,indent居然只有两个空格,真不像专业人士写的。 : 代码质量很一般,也就搞big data的用用还行,丢点数据无所谓,和tibco EMS的可靠 : 性没法比。 : big data里可能hadoop核心代码质量最高。
|
z****e 发帖数: 54598 | 16 abi以后不会是问题了
但是这个向后或者向前兼容来得有些太迟了
vert.x现在的scala api就面临着这种问题
因为无法兼容,导致每次升级,scala部分代码都需要大量重构
每次都是其他语言都做好了,都开始测试了
就看scala在那边磨磨蹭蹭,要等很久才会好,因为工作量甚大
而且即便如此,main team都觉得会偏离core code
因为大多数语言的api都是一层wrapper,而scala不是
有很多工作几乎是重构了整个设计
但是好在scala可以直接用java的api,所以也还好就是了
现在vert.x v3主要的工作就是在scala上,其他基本上都做得差不多了
【在 t**r 的大作中提到】 : jun rao说kafka已经开始用Java代码重写部分code了 : 因为scala的binary compatability的问题,也就是abi的问题
|
g*********e 发帖数: 14401 | 17
linkedin use 2 space indent, i think google fb all do.
【在 g*********9 的大作中提到】 : 看过kafka的原代码,那叫一痛苦,indent居然只有两个空格,真不像专业人士写的。 : 代码质量很一般,也就搞big data的用用还行,丢点数据无所谓,和tibco EMS的可靠 : 性没法比。 : big data里可能hadoop核心代码质量最高。
|
B********r 发帖数: 397 | 18 也可以说java,c#都没必要,c就够了,不过这种讨论根本没意义
scala不是必须,但确实提高效率不少,还有那些functional 的部分java 8 还是无法
取代
最重要是看人,不是看语言
【在 l**********n 的大作中提到】 : 问题是Scala根本没有必要。
|
p*u 发帖数: 2454 | 19 u can always format local files by uself, indentation or whatever.
【在 g*********9 的大作中提到】 : 看过kafka的原代码,那叫一痛苦,indent居然只有两个空格,真不像专业人士写的。 : 代码质量很一般,也就搞big data的用用还行,丢点数据无所谓,和tibco EMS的可靠 : 性没法比。 : big data里可能hadoop核心代码质量最高。
|
l**********n 发帖数: 8443 | 20 scala维护是大问题,不知道怎么提高效率了
【在 B********r 的大作中提到】 : 也可以说java,c#都没必要,c就够了,不过这种讨论根本没意义 : scala不是必须,但确实提高效率不少,还有那些functional 的部分java 8 还是无法 : 取代 : 最重要是看人,不是看语言
|
B********r 发帖数: 397 | 21 您是没看过有些三哥写的java,c#code啊。。。 比assembly还难看懂,style不行,
逻辑不通,结构混乱,看完整个人都斯巴达了
【在 l**********n 的大作中提到】 : scala维护是大问题,不知道怎么提高效率了
|