V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 58 页 / 共 123 页
回复总数  2459
1 ... 54  55  56  57  58  59  60  61  62  63 ... 123  
2020-04-18 17:02:23 +08:00
回复了 hanssx 创建的主题 Linux 新手工作使用 Linux ,桌面软件使用体验不流畅
另外 Linux 检测显卡驱动这问题,我记得跑下 glxinfo 和 glxgears 之类的就行
2020-04-18 16:56:54 +08:00
回复了 KunMinX 创建的主题 分享创造 好好说话 - awsl 都啥玩意儿~
@dreamusername 你是没见过十年前的 RFLZ,RPWT,PLMM,NC 之类的?
2020-04-18 16:42:55 +08:00
回复了 yangyuhan12138 创建的主题 Java HotSpot 虚拟机对象的实例数据部分是否存的是地址值?
你这个问题跟 https://v2ex.com/t/663545 这里的楼主是类似的:混淆了 Primitive 值和 Reference 值
学习 C++ 也可以解决这个问题(其实学 C 就可以,不过 C 太乱了)

Primitive 值是可以直接存的,Reference 值始终存的是指向另一个对象的指针。而从底层的角度,把 Reference 当成指针 Primitive 看待,这问题就解决了。

楼主想想就知道如果“A 对象的实例数据部分存的是指向 B 对象的地址”,那么 B 对象的实例数据存在哪里?存一个指向 C 对象的指针?这就一直套娃了
而且楼主明显是知道“新建一个数组,并将指针指向他”的 ...
2020-04-18 16:35:36 +08:00
回复了 hanssx 创建的主题 Linux 新手工作使用 Linux ,桌面软件使用体验不流畅
说起来我现在打字用的 Mac 有个问题,就是在用 Chrome 开某些页面的时候有个叫 fontd 的进程会占满 CPU 若干秒,在此期间页面卡住
该 Mac 还有个问题,就是不能在视频播放时连接 AirPods,不然没声音,只能停止视频,重新连 AirPods,再放视频才可以
2020-04-17 22:22:57 +08:00
回复了 xell 创建的主题 分享发现 JavaScript: The First 20 Years / 《JavaScript——最初 20 年》深度好文
今日 C++ 笑话:C++ 做了 15 年,出了本书叫 The Design and Evolution of C++ 居然有 480 页。要知道就连 JavaScript 做了 20 年才写了不到 150 页
2020-04-17 21:58:22 +08:00
回复了 vevlins 创建的主题 程序员 有什么配置语言是图灵完备的吗?
这个问题很有意思,因为我前两个月看到了 #18 提到的 Dhall 的作者的一篇博客:
http://www.haskellforall.com/2020/01/why-dhall-advertises-absence-of-turing.html

可能是作者说话太客气了,我没太看懂他究竟要表达什么意思。他列了两点“为什么‘配置语言’应该是非图灵完全的“的原因:第一点是非图灵完全”imply“了一些安全特性,第二点是很多人认为配置语言就应该是非图灵完全的。
虽然尽管我仔细阅读之后认为作者的意思是“非图灵安全对于配置语言是可欲的”(尤其考虑到作者自己就是一个非图灵安全的配置语言的作者之后),我反而认为这篇文章恰好能完美地说明“为什么非图灵完全的配置语言是个骗局”——因为作者列举的这两点理由就挺萌的没有一点是和“非图灵完全”这一特性有直接关系的!

我先亮我的屁股:我个人支持配置语言图灵完全,支持配置语言越做越复杂(或者至少是比现在主流的更加复杂),甚至支持直接使用合适的通用编程语言作为配置语言来使用。这和我的背景,以及由此产生的对软件可定制性的追求有关,见 https://www.v2ex.com/t/647806#r_8619946 https://v2ex.com/t/627912#r_8326554 等回复

然后把文章作者的事实陈述掺上我自己的价值判断炒两下:
“图灵完全”之所以在配置语言上成了个问题,主要是因为有那么一拨人更看重配置语言的“安全”“稳定”和“可控”,偏偏又是这么一拨人中有那么一部分人,根本对“图灵完全”是什么林檎东西都没有概念,然后用“非图灵完全”当作“简单”“安全”的 umbrella term (这要部分归功于 PL 教育的失败和应用的落后),然后搞得很多人都开始 dssq (毕竟大多数人是不会思考的),就成了现在这个德行。

在这篇文章中,作者以 Ackermann Function 举例,说明了“非图灵完全”的特性并不能帮你控制程序的运行时间和资源占用(或者说是个“理论意义”和“实际意义”的问题,再往下就要扯到 王垠 vs. 赵海平 了 ...),然后说“非图灵完全”一般 imply 了几个其他的特性所以大家喜欢——虽然这些特性在图灵完全的语言中也都可以实现。后面实际是把类似的东西又重复了一遍,只不过更强调大家喜欢的是“图灵完全”这个词的色彩而不是这个特性本身——换句话说就是“一群没开化只会跟风的猴子”。然后在评论中作者又把非图灵完全可能带来的静态分析方面的好处给 invalidate 了。总结:非图灵完全的配置语言是个骗局 Q.E.D.

哦对了在这个 Reddit thread 里面 https://old.reddit.com/r/programming/comments/f0odmw/why_dhall_advertises_the_absence_of,作者( u/Tekmo )有部分解释了他的动机:"not to defend improper use of terminology" ... "problem with imprecise terminology" ... "it is that misuse of the term 'Turing complete' is an unfortunate reality that I have to deal with when promoting the language" (Dhall)

然后回到楼主的问题,楼主重点强调了“配置语言”,但是回复已经很明显了——所谓的“配置语言”和其他语言之间并不存在明显的分界线——INI 可能是最简单的,再往上是 JSON,还有 UNIX 一些软件的 config,然后 YAML,XML,Lua,LISP,Python 。这个列表里面,如 #4 所引用的,"Data Description Language" 和图灵完备的编程语言之间形成了一条明显的分界线(虽然这和“图灵完备”并没有什么林檎关系,只是能用的编程语言一般都是图灵完备的),但是如果把 Dhall 这种加进去,就成了一个连续的光谱了。所以不如就把这个滑坡放在那不管,转而尝试区分“适合用于配置的语言”和“不适合用于配置的语言”——当然这个依然是非常主观的 ...

另一方面,可以从语言的设计目的来区分,但是十分不幸的是,常用的“配置语言” JSON 和 XML 都不是专门为了“配置”设计的,YAML 更像但是我不熟悉不太好说,这些只是在相关场景下最常被使用而已(或者说没有更好的替代品 ...),只有 Dhall 旗帜鲜明地打出了“configuration language” ...

我的结论是,楼主的“配置语言”这个概念,也是个骗局。图灵完全的语言一大堆,看谁顺眼爱用啥用啥


更有意义的讨论方向也许是,“图灵完全的配置语言”(或者说图灵完全的,你主观认为适合用于配置的语言)“应该”是什么样子。比如限制或禁止副作用,允许对递归做出限制等等。
当然我更倾向于把这些做成一个通用编程语言的库 ...
2020-04-17 20:30:31 +08:00
回复了 buffzty 创建的主题 程序员 如何安全得表达对恶心企业的不满?
如果仅仅是更新软件的话,那倒是简单。
主要是专业素质要跟上,不要出现什么不小心把源码落在未加密的笔记本上这种低级错误

但是我觉得技能可以学,对于大多数人来说,最难的其实是自己的心理问题——也就是”我做了就一定要得到反馈”这样的心理,在你走上匿名做软件这个路的时候,就不能有。至于”捐赠”什么的更是不要想

其实就算没有匿名的需求,我认为对于任何的创造行为,有意调低对外界反馈的期望值,学习在没有外界反馈的情况下输出,都是长期有利的。隔壁有个帖子是关于在某站点进行视频创作的,若干回复提到了“没人看的问题”——我要说的就是就算没人看也要做,甚至专做没人看的东西。以”有没有人看”去指导你的创作行为的逻辑是有缺陷的,特别是在你不指望拿这个吃饭的前提下。
2020-04-17 20:04:02 +08:00
回复了 kenwd 创建的主题 MacBook Pro Ultrafine 4K 和 eGPU
DP 转 USB-C 应该可以
如果是 5k 可能就麻烦了,貌似超过 4k 用的是非标接口
2020-04-10 01:07:23 +08:00
回复了 pmispig 创建的主题 Go 编程语言 golang 中怎么优雅地计算结构占用的内存大小
野蛮路子:运行时创建 1G 个该类型的值,观察内存占用

这方法我还真用过两次,拿来猜闭源软件里的一些功能是如何实现的
2020-04-06 13:43:39 +08:00
回复了 sxszzhrrt 创建的主题 Windows 给上古系统编写软件应该使用什么语言和 IDE?
不想用 C/C++ 的话,汇编语言也是可以的
2020-04-05 20:12:23 +08:00
回复了 black11black 创建的主题 问与答 想组台个人服务器放在家里,跑数据服务,求装机配置!
@black11black 主题的问题是”有没有服务级的 ITX 主板,还是 ITX 只能装消费机硬件“
你在 DIY 社区看到的绝大多数 ITX 都是装消费硬件的,消费硬件就是消费主板 + 消费 CPU + 消费内存
服务器硬件一般就是服务器主板 + 服务器 CPU ( Xeon 或 EPYC ) + ECC 内存

”服务器主板 + 消费级或半消费级 CPU“这种灰色地带很少,我不知道你为什么要往这个坑里跳:
一些 ITX 用 Atom 、Pentium 、Celeron 和 i3 之类的看具体配置和用途
Ryzen 理论上支持 ECC 内存,但是没有人给他做服务器主板

存储如果要可用性你得 RAID,也就是说至少 3 块盘,两块 RAID,一块备份
2020-04-05 16:36:37 +08:00
回复了 takashiki 创建的主题 奇思妙想 想到了一种密码的生成和管理方式
根据回复来看,相比于”密码的生成和管理方式“,楼主搞一搞”密码的生成和管理方式的管理方式“可能更好
2020-04-05 16:19:35 +08:00
回复了 black11black 创建的主题 问与答 想组台个人服务器放在家里,跑数据服务,求装机配置!
ASRock Rack 和 Supermicro 都有 ITX 的服务器板子,白嫖王还评测过

硬盘可以考虑 Intel 的,貌似要靠谱些,或者用一个不靠谱的快盘+其他盘做备份

速度要求高的话可以考虑 DCPMM

但是我不是很确定楼主真的需要”服务器”硬件
2020-04-04 05:01:37 +08:00
回复了 wangbenjun5 创建的主题 程序员 这就是我为什么从 PHP 转向 Go 的原因
类似的问题我好久之前就有提过,不想在这重复了: /t/636465#r_8459703

> 我觉得这几个帖子应该引发的思考是:我们真的有过“在意”这件事情么?再看一遍:C 的成功是 UNIX 的成功,C++ 的成功则是建立在 C 的成功的基础上,PHP 和 JavaScript 的成功是 Web 的成功,Java 的成功是 Sun 和 C++ 的成功——它们都不是“语言本身“的成功。
> 什么是“语言本身”?考虑这样一个问题,当被问到“XX 语言为什么好?”时,你会怎样回答?
> 它的 IDE 支持好?它的库多?某个平台甚至某个行业钦定了用它?它的工作多(或者好招人)?它的语法“优雅”?或者单纯它的爹比较厉害?
> 这些都不是“语言本身”的东西。虽然这些东西会影响大家对其的评价(甚至决定你有没有听说过它)。
> 但是最有趣的事情是,这些东西不仅会影响对语言的评价,还会影响对“语言本身”的评价,能让人把坏的吹成好的,把好的贬成坏的,所谓 dssq 。



PS:科班教育的失败可能不是国内的特色。王垠也有说过“IT 业人士经常混淆编程语言( PL )和编译器两个领域”。这话来自《我不是编译器专家》,这篇文章很大程度上是王垠的吹逼文,我对其其他内容,包括文中表达的对 compiler 和 PL 两个领域及其从业者的意见不做评价。但是其指出的一些问题是确实存在的。包括“编译器领域处于编程语言( PL )和计算机体系构架( computer architecture )两个领域的夹缝中,上面的语言不能改,下面的指令也不能改,并没有很大的创造空间。”,我在 /t/632869#r_8401400 有提到过。
2020-04-04 05:01:04 +08:00
回复了 wangbenjun5 创建的主题 程序员 这就是我为什么从 PHP 转向 Go 的原因
(我很纳闷链本站的帖子也属于“外链”么
2020-04-04 04:58:47 +08:00
回复了 wangbenjun5 创建的主题 程序员 这就是我为什么从 PHP 转向 Go 的原因
说回之前的回复。

我前面说本站很多帖子都包含“程序员”“互联网行业”“互联网应用”等隐式的假设。这个列表还可以继续扩展,对于大多数帖子而言,还包含一个假设,就是“对编程语言没有系统的了解”。很多人容易将编程语言的设计、编程语言的实现、编程语言的生态等问题混在一起谈。
这也并不是本站独有的特点,国内就算科班的教育很多方面也是不合格的,站内以及行内很多人入行也只是为了恰饭而不是真有什么技术热情。出现一群信奉“地心说”的人大谈天文学的现象一点也不奇怪。

虽然这些概念容易混,但是稍微注意一下应该还是能分清的。所以我试图在 #128 提示“语言”和“语言的实现”是两个东西。
而说 #147 信息量大是因为这句话:
“一个语言好不好,或者说一个软件好不好,可以从它本身的效率,bug,生态,开发组负责程度,版本更新质量来评价。”
你列的东西都没问题,问题出在你没列的东西上。
评价一个软件的标准可以有“效率,bug,生态,开发组负责程度,版本更新质量”,但是你好像排除掉了其他标准。我做一个软件,功能只有 Hello World,效率巨高,bug 极少,开发者有求必应,就是“好软件”了么?
就好比在电商平台上买东西看别人的评价:“物流很快,包装很好看,客服态度很好,还送了东西”,唯独缺了“商品本身”的评价。

还一个错误在于,“编程语言”并不是软件,“编程语言的实现”才是软件。就好像 POSIX 并不是软件,POSIX 的实现才是软件。
比如在设计一款处理器时,第一件事是定义它的指令集,指令集定义完之后,就出现了一种新的汇编语言,但是这个时候处理器还没动工,这个语言尚未有实现。
我个人猜测,造成混淆“编程语言”和“编程语言的实现”的原因之一是,大多数编程语言都没有正经的 spec (或者说就算有大多数人也并不真的关心),同时有自己的 de-facto standard implementation,并用这个 de-facto standard implementation 充当 spec 的作用。这很容易给此类编程语言的用户造成概念上的误解。
但是也有很多语言是有像样的 spec,并且有多个共存的被广泛使用的 implementation 的,比如 C 、C++、Standard ML 、OpenCL 、Scheme 、Common Lisp 、Java 、Fortran 和以前的 JavaScript 。比如 Standard ML 这个编程语言,可以使用的实现有 SML/NJ 、MLton 、MLKit 、CakeML 等,我不管用哪个,都是在写 Standard ML 。其实上面有不少都是响当当的名字,这个错误本来不该犯。

对于编程语言的实现,某种程度上可以应用软件的标准来评判(至于你在 #147 钦定的标准合不合理是另一个问题)。对于编程语言本身,应该应用什么标准呢?我现在并不真的想讨论这个事情,因为一个非常明显的问题是:我看到“语言好不好”的标准是“效率,bug,生态,开发组负责程度,版本更新质量”时,就知道——和之前我见过的很多人一样,“编程语言本身”这个概念,在你这根本就不存在。也就无怪我在 #128 的提示是无用的,并且在 #138 做的假设也是错的了。
2020-04-04 04:57:26 +08:00
回复了 wangbenjun5 创建的主题 程序员 这就是我为什么从 PHP 转向 Go 的原因
@liuxu #147 你这个回复信息量有点大,一点点说

首先,我在 #128 和 #138 的回复,都是表达“把‘语言本身’和非‘语言本身’的东西”分开的意思。
然后,就我个人而言,我并没有说哪个语言“不如”哪个语言,或者哪种语言“不如”哪种语言的意思。比如我在 #138 说的是“PHP 不适合自己”,而不是“PHP ‘不好’”,也就是说我认为楼主本主题表达的是个人观点,但是为什么这个“个人观点”(以及如你所说,本站其他人的“个人观点”)听起来就好像“哪个语言‘不如’哪个语言,或者哪种语言‘不如’哪种语言“呢?

我先说我的个人观点,对于”动态类型和静态类型没有谁好谁坏“,”脚本语言和编译型语言有什么好与不好的“这种言论我不评价,我个人偏向于说”不同的语言以及不同种类的语言适合不同的场景“。
比如静态类型语言在”交互式使用“的场景下一般就不如动态类型语言好用,我目前没见过静态类型语言有好用的交互式 shell 。
但是说到(虽然楼主一直没说但是你一直在说的)性能问题,静态类型语言的”性能天花板“是要比动态类型语言高的,我不止一次说过这个问题: https://v2ex.com/t/594287#r_7803900 https://v2ex.com/t/632869#r_8401400 然而换到另一个角度,这个性能天花板有多重要,到底什么时候能达到性能天花板,这又是另一个问题。

很多人没有意识到的一件事是,我们现在说的话,做的决定,干的事,都是建立在大量的假设( assumption )下的,这些假设,很多人习以为常但是并不自知(有时我们把这种东西叫做“常识”)。比如上一段说的性能问题,是建立在现有主流计算机体系架构的前提下的,如果换到一个不同的架构中,结论可能会不一样。
接受和学习新东西的过程,很大可能伴随着”不断发现并打破自己原有的假设“的过程(现在某些人喜欢用”重建三观“之类的词来表述这一过程)。
比如数据库这东西,十年前可能大多数人会觉得数据库一定要有 SQL,没有 SQL 不叫数据库,NoSQL 火了之后才发现原来数据库可以有其它的形式。
有些老一辈就有”网上的一定是骗人的“之类的假设,如果不能打破这种假设的话,肯定是不能享受各种互联网应用的。
注意这个“发现并打破原有的假设”的过程,是在新事物的输入下,被动触发的。而相应的可以认为,创造新东西的过程,则是主动的”寻找未被打破的假设并试图将其打破“的过程,这些”未被打破的假设“,很大概率上就是大家”习以为常但是并不自知“的。
比如 GPU,最开始只是拿来显示界面和玩游戏的,你需要信号转换就给你加信号转换电路,你需要 3D 投影和灯光就给你加投影灯光电路,我就满足我手头的需求就可以了。后来有人发现游戏越来越复杂,总加功能不是个事,该改变模式了,于是把其中的某些组件做成了可编程的,大家写的游戏花样也越来越多。这时候它名字还叫 GPU,宣传还是游戏画面多么好。后来有人从这坑里面跳出来了,发现这东西跟 vector processor 有啥区别呢,能编程算力又高,好像没人规定我只能做 rasterization 吧,于是 GPGPU 出现了。又过了十几年 GPGPU 的风把老黄吹上风口了,图形领域一群无聊的人在比谁的全局光照和光线追踪算法效果更好效率更高,老黄告诉他们我在 GPU 里面把这东西做进去了,你们软件的问题我用硬件解决了,现在是你们发挥的时候了——NVIDIA 的人在 DXR API 教程中说:”在 Programmable Shading 刚刚引入的时候,很多人以我们根本无法想像的方式使用这个功能,做出了很多奇奇怪怪的效果( https://www.shadertoy.com ),现在又有新的功能了,并且它是可编程的,我希望能复制当年的盛况,硬件 Raytracing 的能力并不仅仅能用来做 Raytracing,或者说,Raytracing API 并没有’正确‘的用法( There isn't a 'Right' way to use Ray Tracing.)“

再有,哥白尼所提出的“日心说”,其实按照现在的观点并不完全“正确”,然而它在历史上依然有很重要的地位,就是因为在当时的环境下“地心说”属于“习以为常但并不自知”的东西,哥白尼思考、 挑战并打破了这一“常识“。
哥白尼这个例子的有趣之处在于,哥白尼所打破的常识(假设),是在特殊的宗教环境下形成与维持的。这种“特殊环境”和本站有一定的相似之处——本站的主体用户群体是所谓“互联网”行业的程序员,所开发的东西大体也类似,所以本站的大多数言论,其实都是在“程序员”“互联网行业”“互联网应用”甚至”男性““一二线城市”之类的假设之下。

而我前面说了,很多人无法意识到自己平常所做的“习以为常但并不自知”的假设,所以会轻易地无视掉这些假设,对自己的观点进行 generalize——比如某语言在互联网行业不好用,那就是没用的语言;某技术我用着不对付,那就是垃圾的技术,这就构成了你看到的“某语言‘不如’某某语言”的言论。
这并不限于本站,其实大多数人都是这样,我上面说了:创造者打破假设,学习者的通过跟随创造者的脚步,才能意识到“啊,原来还可以这样”。大多数人并没有足够的“寻找并打破假设”的能力(或者说可能有这个能力,但是没这个意识),所以大多数人并不能创造出什么新东西来。
但是这种能力的缺失的锅,我认为不能甩到“大多数人”身上,毕竟一个人从出生开始,就被社会进行各种各样的规训,大多数人接受的教育也并不注重这方面的内容——这些规训和教育,都是让你接受并巩固已有的东西(思维定式)的过程,接受的越多,就越有可能成为社会合格的螺丝钉,也越没可能发现并跳出假设。(有没有可能不接受这些假设,从而让自己成为一个彻划时代的创新者呢?不太现实,我认为文明的一个重要前提是知识的代际传递,拒绝前人知识与这一点相悖)

还有一种可能,就是人们能够意识到自己所做的一些假设(比如“仅适用于互联网行业”活着“仅仅是我的个人体验和个人观点”),但是在发表言论时,并不会有意对这些假设进行说明。这个锅同样也不能甩到“大多数人”身上,因为我们做了无数多的假设,没人能枚举整个上下文中所有的假设,更不能完整地写出来。自然语言的局限性要背一部分锅,毕竟在编程语言中,每个变量是什么值,每个结构是什么意思,上下文中有什么东西,都可以通过查源码和 spec (如果有的话)来严格地定义,自然语言做不到。

简单来说可以认为,本站的大多数帖子中,当出现“某语言不如某某语言好用”这样的言论时,脑内需要自动变换为“某语言在互联网项目中不如某某语言好用”,甚至“某语言我用着不如某某语言好用”。所以我对楼主主题内容的理解是“楼主认为 PHP 不适合自己”。

这是我对你所说的“V 站怪现象”的解释。(当然,我并没有做“某个人或者某群人存在奇怪的恶意”这样的假设,我在这里额外做的假设是“楼主,以及大多数发表类似言论的人,表达的都是自己真实的个人感受”)
值得一提的是,这个理论和 Elon Musk 以及 Jim Keller 等人经常说的“First Principle”有一定相似之处。按照 Jim Keller 的话说:”(Elon Musk) has a deep belief that no matter what you do, it's a local maximum…Elon was good at taking everything apart and what's the deep first principle. That ability to look at it without assumptions and how constraints. And that's super fun and he's into it“ ( https://www.youtube.com/watch?v=Nb2tebYAaOA ) 很明显他认为 Elon Musk 是有很强的“寻找并打破假设”的能力的。
2020-04-03 02:27:49 +08:00
回复了 wangbenjun5 创建的主题 程序员 这就是我为什么从 PHP 转向 Go 的原因
@liuxu 那不妨把你想表达的意思以更直接(也就是更“傻瓜友好”)的表达表达出来?

我个人的理解,你的意思是楼主对 PHP 的抱怨,是对 PHP 团队工作的不尊重。
我的意思是,PHP (实现)团队在优化方面尽力了,但是无力改变 PHP 语言本身设计的一些问题。用极端点的话说就是,路线错了,知识越多越反动。
楼主也并没有抱怨 PHP 有性能问题,只是觉得 PHP 不适合自己而已。
1 ... 54  55  56  57  58  59  60  61  62  63 ... 123  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2705 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 46ms · UTC 14:19 · PVG 22:19 · LAX 06:19 · JFK 09:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.