从即日起,Hawk将停止升级工作,其版本号将停留在5。

https://github.com/ferventdesert/Hawk

Hawk已经开发和维护6年时间了,它曾经承载了开发者很多的期待。背后也有不少故事和为它付出过的朋友。6年间Hawk拥有了上万的用户,并获得了很多好评。

在这6年间,我为它提供了越来越丰富的功能,提升可用性和稳定性,相比于第一版简直是天上地下。但是,一款软件本质上是没有尽头的,缺点一定是大量存在的,需求是永远满足不完的:有桌面版就有人需要网络版,功能强大后就会有人吐槽复杂不会用。面对复杂的现实世界,以及各种奇怪的需求,根本不可能有完美通用的解决方案:多了快不了,快了好不了,好了省不了:一切都是妥协与平衡。

作为开发者,我深刻地认识到,要想创造伟大的产品,商业闭环是骨骼,用户需求是血液,技术只是其上的皮毛而已。 运维和推广必不可少,开源只是其中一条途径,皮之不存,毛将焉附?

时至今日,大数据的风口也逐渐过去,用户隐私越来越被重视,互联网已经成为信息孤岛,所谓“爬虫”的价值已经式微。再者,Hawk5带来的功能升级,在博客园等社区,也没有得到与之匹配的反馈。更重要的是,不论是技术栈,和业务方向,都与开发者本人的未来目标距离越来越大。因此,再去花费大量的精力去优化一款“爬虫”软件终究是不划算的。人生太过短暂,我们还有太多的重要的事情去做。因此,停止优化Hawk已经成为必然。回到标题的那句话,万物皆有始有终。

最后,感谢给我提供了大量测试和建议的升哥,你一直都在无私的付出;感谢各位使用Hawk的朋友们,最后感谢一下自己这几年来的光阴。该说的都已经说过了,收拾行囊,继续上路吧。

万物皆有始有终: Hawk5即日起停止升级迭代的更多相关文章

  1. Javascript万物皆对象?

    在javascript的世界里,有这么一句话,万物皆对象. 但是这个对象,应该怎么理解呢? exm........??,难道值类型也是对象?!! 当然,不是. 准确地讲是对于“引用类型”而言. 那,在 ...

  2. 20190814 On Java8 第三章 万物皆对象

    第三章 万物皆对象 对象创建 数据存储 有5个不同的地方可以存储数据: 寄存器 (Registers) 最快的存储区域,位于CPU内部 .无法直接控制. 栈内存(Stack) 存在于常规内存 RAM ...

  3. Go语言: 万物皆异步

    来源:https://www.jianshu.com/p/62c0cd107da3 同步和异步.阻塞和非阻塞 首先要明确的是,同步(Synchronous)和异步(Asynchronous),阻塞(B ...

  4. C#实现一个万物皆可排序的队列

    需求 产品中需要向不同的客户推送数据,原来的实现是每条数据产生后就立即向客户推送数据,走的的是HTTP协议.因为每条数据都比较小,而数据生成的频次也比较高,这就会频繁的建立HTTP连接,而且每次HTT ...

  5. 万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用

    在上一篇内容我们介绍了如何利用低代码开发套件实现低代码应用与U8+系统的对接集成,本次给大家带来的是如何将用友U8+系统中的数据进行价值扩展和实际应用. 我们以生产物料齐套分析为例来说明如何利用低代码 ...

  6. 华为开发者大会2022:HMS Core 3D建模服务再升级,万物皆可驱动

    11月4日,HDC2022华为开发者大会在东莞松山湖举办.在本次大会的HMS Core创新图形能力分论坛中,HMS Core重点介绍了其在3D技术领域的创新应用方向,其中3D建模服务展示了创新的自动骨 ...

  7. 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)

    一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...

  8. java万物皆对象

    我们以Dom对象的形式 可以CRUD xml文件或xml字串(经流把xml文件读出转成字串) 我们以JsonObject对象的形式 可以CRUD json字串 还有正则表达式.ORM都是.

  9. 万物皆对象的JavaScript

    写在前面: 经过前段时间对于H5语言的学习,开始慢慢适应现在的生活节奏和代码语言.从一开始的毫无头绪到现在可以大概地写出部分的网站静态页面,用了两个周的时间.作为一个之前从未接触过计算机语言的初学者来 ...

随机推荐

  1. C#使用Windows Service

    前言:Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序.这些服务可以在计算机启动时自动启动,可以暂停和重新 ...

  2. Zara带你快速入门WPF(2)---布局篇

    一.章节目标 这几章节我们会创建一个完整的Window程序,包括使用DataGrid空间,数据绑定是把.NET类中的数据提供给用户界面的一个重要概念,还允许修改数据,包括.NET4.5新增的INoti ...

  3. TP3.2框架中的字母函数解析

    C的使用方法以及注意事项 使用方法: 1.读取配置 C('参数名称')  配置参数不区分大小写,存在则设置,否则返回NULL; 因为配置参数是全局有效的,因此C方法可以在任何地方读取任何配置,即使某个 ...

  4. java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问

    本文将详解 equals()与hashCode()方法 概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) publi ...

  5. Unity 点乘&叉乘 应用实例

    一 前言 1.概述 主要概述了点乘,叉乘的实用例子,没有讲述什么原理性的,偏向应用层.点乘叉乘数学原理性的东西比较“难记”,网上很多.实用举例,网上算是比较少吧.故,来总结一番. 2.可以解决的问题 ...

  6. [Python Web]部署完网站需要做的基本后续工作

    简述 今天自己上线了一个简单的 Page,没有什么功能就是一个展示页. 但是,我发现部署完,上线后,还要弄不少东西.下面就是我记录.整理的一些上线网站基本都会用到的网站和配置. 加入统计代码 这个是必 ...

  7. python操作符笔记

    1.**两个乘号就是乘方,比如2**4,结果就是2的4次方,结果是16 2.//就是做浮点除法,并舍弃小数部分(注意不是四舍五入) 3.@是python中的修饰符,具体功能我没弄懂.

  8. PyQt:无边框自定义标题栏及最大化最小化窗体大小调整

    环境 Python3.5.2 PyQt5 陈述 隐藏掉系统的控制栏,实现了自定义的标题控制栏,以及关闭/最大化/最小化的功能,自由调整窗体大小的功能(跟随一个大佬学的),代码内有详细注释 只要把Mai ...

  9. JDK源码分析(6)之 LinkedHashMap 相关

    LinkedHashMap实质是HashMap+LinkedList,提供了顺序访问的功能:所以在看这篇博客之前最好先看一下我之前的两篇博客,HashMap 相关 和 LinkedList 相关: 一 ...

  10. Node.js 进程平滑离场剖析

    本文由云+社区发表 作者:草小灰 使用 Node.js 搭建 HTTP Server 已是司空见惯的事.在生产环境中,Node 进程平滑重启直接关系到服务的可靠性,它的重要性不容我们忽视.既然是平滑重 ...