Red is a next-generation full-stack programming language aiming for both extreme simplicity and extreme power. It incorporates a reactive engine at its core, enabling responsive interfaces and dataflow programming. Featuring a human-friendly syntax, Red is designed for metaprogramming, code generation, and domain-specific language creation. It's cross-platform and offers a complete toolchain encompassing everything from low-level system programming to high-level scripting, with a small, optimized footprint suitable for embedded systems. Red's ambition is to bridge the gap between low-level languages like C and high-level languages like Rebol, from which it draws inspiration.
Driven by a desire to understand how Photoshop worked under the hood, the author embarked on a personal project to recreate core functionalities in C++. Focusing on fundamental image manipulation like layers, blending modes, filters (blur, sharpen), and transformations, they built a simplified version without aiming for feature parity. This exercise provided valuable insights into image processing algorithms and the complexities of software development, highlighting the importance of optimization for performance, especially when dealing with large images and complex operations. The project, while not a full Photoshop replacement, served as a profound learning experience.
Hacker News users generally praised the author's project, "Recreating Photoshop in C++," for its ambition and educational value. Some questioned the practical use of such an undertaking, given the existence of Photoshop and other mature image editors. Several commenters pointed out the difficulty in replicating Photoshop's full feature set, particularly the more advanced tools. Others discussed the choice of C++ and suggested alternative languages or libraries that might be more suitable for certain aspects of image processing. The author's focus on performance optimization and leveraging SIMD instructions also sparked discussion around efficient image manipulation techniques. A few comments highlighted the importance of UI/UX design, often overlooked in such projects, for a truly "Photoshop-like" experience. A recurring theme was the project's value as a learning exercise, even if it wouldn't replace existing professional tools.
Summary of Comments ( 111 )
https://news.ycombinator.com/item?id=44044306
Hacker News commenters on the Red programming language announcement express cautious optimism mixed with skepticism. Several highlight Red's ambition to be both a system programming language and a high-level scripting language, questioning the feasibility of achieving both goals effectively. Performance concerns are raised, particularly regarding the current implementation and its reliance on Rebol. Some commenters find the "full-stack" nature intriguing, encompassing everything from low-level system access to GUI development, while others see it as overly broad and reminiscent of Rebol's shortcomings. The small team size and potential for vaporware are also noted. Despite reservations, there's interest in the project's potential, especially its cross-compilation capabilities and reactive programming features.
The Hacker News post about the Red programming language has a moderate number of comments, sparking a discussion around several key aspects of the language and its development.
Several commenters express intrigue and cautious optimism about Red's ambition to be both a low-level and high-level language, a "full-stack" solution. They acknowledge the potential power of such a language, but also voice skepticism about the feasibility and potential performance implications of this approach. Some raise questions about the practicality of targeting both system programming and application development simultaneously.
There's a discussion around the performance of Red, with some commenters expressing concerns about its speed and efficiency, particularly in comparison to established languages. Others counter that performance isn't the only metric and highlight Red's ease of use and potential for rapid development. The garbage collection mechanism of Red is also brought up, with queries about its implementation and impact on performance.
Red's cross-compilation capabilities are a point of interest for several commenters. The ability to compile to multiple platforms from a single codebase is seen as a valuable feature. Some ask about the specifics of how this cross-compilation works and the level of platform support offered.
The choice of Rebol as Red's inspiration and foundation generates discussion. Some commenters familiar with Rebol express concerns based on their past experiences, while others see it as a positive influence. The syntax and design choices inherited from Rebol are discussed, with some praising their elegance and others expressing reservations.
Security considerations are raised regarding Red's use as a systems programming language. Commenters question the potential vulnerabilities introduced by features like its reactive programming capabilities and its approach to memory management.
The small community and limited adoption of Red are also acknowledged. Some commenters express concern about the long-term sustainability of the project and the availability of resources and support. Others view the smaller community as an opportunity for closer engagement with the development team.
Finally, several commenters express interest in exploring Red further and experimenting with its features, indicating a degree of curiosity and potential for future growth within the community. The overall tone is one of cautious interest, acknowledging the ambitious goals of Red while also raising valid concerns about its practical implementation and long-term viability.