用多了编程工具,还是Editplus3最贴心
早期Java届是没有统一的IDE的,有些人习惯用文本编辑器,但苦于缺乏提示,有些人从一些渠道用上了JBuilder,但毛病不少,直到Eclipse化解饥渴。
早期的Eclipse真是一股清流,安装简单,使用方便,就像用纯Java写代码般舒心;但好景不长,各种第三方Jar包和第三方插件迅速多到让人苦不堪言,动不动就出毛病;后来,CVS/SVN/git也来添乱,这时的Eclipse就像定时炸弹,只要项目够大,参与的人多,它是小毛病不断,大问题随时在路上。Eclipse后又出了个MyEclipse,这个功能就比纯Eclipse强多了,也省去了部分安装的烦恼,但人多就出乱子的问题还在。
Eclipse后来叫STS,同时它的竞争对手Idea也出来了,舆论都说后者如何如何了得,但我感觉是半斤对八两,先入为主占主要成分,其实也没得挑,大家用啥就用啥了,但人一多就容易乱陀的毛病两个IDE都一样不可救药。
程序写得多了就渐渐发现,编程的类库工具环境都在日新月异地升级,但写来写去总是CRUD代码,从界面到控制层持久层的一套代码写下来越写越恶心,越写越感觉低级,都感觉做事都不要动脑筋,但事还总做不完。我不断发现,身边的新手并不愿意向老手讨教什么,因为他们遇到的问题百度一下就有现成答案,拷贝一下就能用;他们的生产效率也不差多少,因为CRUD代码谁写都差不多;大家虽然坐在一起,但上班来下班走,彼此间就像陌生人,眼神都不需要交流,团结互助非必要,拉帮结派含沙射影落井下石却大有人在。这些其实都不是我想要的,是时候该回归编程的乐趣了。
快乐编程其实真不需要复杂的IDE,一个合适的文本编辑器足矣!提示什么的都不重要,熟了就不是问题;语法高亮现在的文本编辑器都能做到,没有问题也不大;需要编译器就装一个,然后直接用文本编辑器就好了。
我现在写Canvas代码,只用一个古早的文本编辑器Editplus3,然后用浏览器就可以解释执行了,这种至简的环境不知省去了多少麻烦;回想2017年准备参与个项目,他们说是按照环境安装手顺弄就好了,一打出来十多页纸,看都眼晕,找熟手帮忙吧他也鼓捣了近一天,还告我还有一半部件没弄好.....两厢比较,真不啻于天壤之别。
有种说法是每月固定的薪水比海洛因和游戏还可怕,海洛因和游戏给人提供的快感毕竟是虚幻的,工资却让你生活在真实的虚幻中,不能正确的认识自己,更无法发挥你的所长,直到有天失业,你才知道工资是平台带来的,而不是正比于你的能力。我现在回想起来,越是人多的地方越缺乏智慧,越是人多的地方越让人平庸,越是人多的地方越让你无所适从,越是人多的地方越容易迷失自己。反而是独处是更能激发一个的活力和创造力,这才是真实的自己。
也许我的晚年,只能是穿个焦黄的老破跨栏背心还好几个破洞的,坐在廉价出租屋,死皮赖脸去人家酒铺买半斤最便宜的散白,回家了,拿出屏幕都碎了的手机,蹭邻居家wifi,一边喝口酒一边拿使了3个礼拜的一次性筷子在吃了三天的花生米里夹一筷子,对着屏幕开始指点江山。其实这也无所谓,毕竟是我选择的生活,而不是生活选择的我。
最后高呼一句:编程有Editplus这样的文本编辑器足矣,让所有IDE都见鬼去吧!
END
相关文章:
用多了编程工具,还是Editplus3最贴心
编程久了,发现越是复杂的编程工具越是烦人,而不是帮助人。 早期Java届是没有统一的IDE的,有些人习惯用文本编辑器,但苦于缺乏提示,有些人从一些渠道用上了JBuilder,但毛病不少,直到Eclipse化解…...
Angular基础学习(入门 --> 入坑)
目录 一、Angular 环境搭建 二、创建Angular新项目 三、数据绑定 四、ngFor循环、ngIf、ngSwitch、[ngClass]、[ngStyle]、管道、事件、双向数据绑定--MVVM 五、DOM 操作 (ViewChild) 六、组件通讯 七、生命周期 八、Rxjs 异步数据流 九、Http …...
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
目录 1、用ChatGPT生成论文选题2、用ChatGPT生成论文框架3、用ChatGPT进行文献整理4、用ChatGPT进行论文润色5、用ChatGPT进行问题求解6、用ChatGPT进行思路创新7、用ChatGPT进行论文翻译8、如何直接使用ChatGPT4o、o1、OpenAI Canvas 9、OpenAI Canvas增强了啥?10、…...
Linux防火墙-常用命令
作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。 我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。由于目前以云服务器为主&#x…...
C++:STL常用算法随笔
主要的头文件#include <algorithm> < functional> <numeric> 遍历算法: for_each、transform(搬运容器到另一个容器中 ) void print1(int val) {cout << val <<" "; } for_each (v.begin(),v.end() , print1) 或者用仿…...
Python NumPy学习指南:从入门到精通
Python NumPy学习指南:从入门到精通 第一部分:NumPy简介与安装 1. 什么是NumPy? NumPy,即Numerical Python,是Python中最为常用的科学计算库之一。它提供了强大的多维数组对象ndarray,并支持大量的数学函…...
Flutter笔记--通知
这一节回顾一下Flutter中的Notification,Notification(通知)是Flutter中一个重要的机制,在widget树中,每一个节点都可以分发通知,通知会沿着当前节点向上传递,所有父节点都可以通过NotificationListener来监听通知,通过它可以实现…...
Aegisub字幕自动化及函数篇(图文教程附有gif动图展示)(二)
目录 template行 template pre-line template line template syl template syl noblank template char template notext template pre-line notext template syl noblank notext template keeptags 编辑 template loop number 内联变量 编辑 remeber函数 re…...
系统分析师16:系统测试与维护
1 内容概要 2 软件测试类型 2.1 测试类型 动态测试【计算机运行】 白盒测试法:关注内部结构与逻辑灰盒测试法:介于两者之间黑盒测试法:关注输入输出及功能 静态测试【人工监测和计算机辅助分析】 桌前检查代码审查代码走查以上三个都是做的…...
详解Java中的堆内存
详解Java中的堆内存 堆是JVM运行数据区中的一块内存空间,它是线程共享的一块区域(注意了!!!),主要用来保存数组和对象实例等(其实对象有时候是不在堆中进行分配的,想要了…...
C++类和对象下详细指南
C类和对象下详细指南 1. 初始化列表与构造函数 1.1 初始化列表概述 初始化列表在C中用于初始化对象的成员变量,特别是当你需要在对象构造时就明确成员变量的值时。通过初始化列表,成员变量的初始化可以在进入构造函数体之前完成。这不仅可以提升性能&…...
【瑞昱RTL8763E】音频
1 音乐播放控制 1.1 播放列表更新 文件系统在sd卡中保存header.bin及name.bin两份文件用于歌曲名称的存储。为方便应用层进行歌曲显示及列表管理,可将这两个bin文件信息读取并保存到nor flash中。需要播放指定名称的歌曲时,将对于歌曲名称传递给文件系…...
videojs 播放监控
<head><!-- 1. 引入videojs的CSS。 --><link href"https://vjs.zencdn.net/7.20.3/video-js.css" rel"stylesheet" /><!-- If youd like to support IE8 (for Video.js versions prior to v7) --><!-- <script src"htt…...
电源管理芯片PMIC
一、简介 电源管理芯片(Power Management Integrated Circuits,简称PMIC)是一种集成电路,它的主要功能是在电子设备系统中对电能进行管理和控制,包括但不限于以下几点: 电压转换:将电源电压转换…...
C++ 线性表、内存操作、 迭代器,数据与算法分离。
线性表: 线性表是最基本、最简单、也是最常用的一种数据结构。线性表(linear list)是数据结构的 一种,一个线性表是n个具有相同特性的数据元素的有限序列。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和…...
PHP如何解析配置文件
在PHP中解析配置文件有多种方法,具体取决于配置文件的格式。常见的配置文件格式包括INI文件、YAML文件、JSON文件以及PHP数组文件(即PHP文件本身包含配置数组)。下面是一些常用的方法来解析这些配置文件。 1. 解析INI文件 INI文件是最常见的…...
【Java】六大设计原则和23种设计模式
目录 一、JAVA六大设计原则 二、JAVA23种设计模式 1. 创建型模式 2. 结构型模式 3. 行为型模式 三、设计原则与设计模式 1. 设计原则 2. 设计模式 四、单例模式 1. 饿汉式 2. 懒汉式 四、代理模式 1. 什么是代理模式 2. 为什么要用代理模式 3. 有哪几种代理模式 …...
Java IO流全面教程
此笔记来自于B站黑马程序员 File 创建对象 public class FileTest1 {public static void main(String[] args) {// 1.创建一个 File 对象,指代某个具体的文件// 路径分隔符// File f1 new File("D:/resource/ab.txt");// File f1 new FIle("D:\\…...
PCIe6.0 AIC金手指和板端CEM连接器信号完整性设计规范
先附上我之前写的关于PCIe5.0金手指的设计解读: PCIe5.0的Add-in-Card(AIC)金手指layout建议(一)_pcie cem-CSDN博客 PCIe5.0的Add-in-Card(AIC)金手指layout建议(二)_gnd bar-CSDN博客 首先,相较于PCI…...
二、创建drf纯净项目
1)创建项目 django-admin startproject api2)创建app django-admin startproject api_app3)修改settings.py注释掉一些没用的配置 INSTALLED_APPS [# django.contrib.admin,# django.contrib.auth,# django.contrib.contenttypes,# django.contrib.sessions,# d…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
